ഉള്ളടക്ക പട്ടിക[മറയ്ക്കുക][കാണിക്കുക]
വ്യക്തിപരമോ പ്രൊഫഷണലോ ആകട്ടെ, ആപ്പുകൾ ബിസിനസ്സ് ആയിരിക്കുമ്പോൾ ആശയവിനിമയം മാത്രമല്ല, ആപ്ലിക്കേഷനുകൾ ഉപയോഗിക്കുമ്പോൾ ആപ്ലിക്കേഷനുകളുടെ ലഭ്യത ഇന്നത്തെ പോലെ ഗൗരവമായി എടുത്തിട്ടില്ല.
സ്ഥിരമായി ഓൺലൈനിൽ ഇല്ലാത്തതോ സ്ഥിരതയില്ലാത്തതോ ആയ ആപ്ലിക്കേഷനുകൾക്ക് അവയുടെ ഉപയോക്താക്കളും പ്രസക്തിയും നഷ്ടപ്പെടുകയും ഒടുവിൽ കാലഹരണപ്പെടുകയും ചെയ്യുന്നു. ഒരു മിന്നലിൽ അത് സംഭവിച്ചു. ഇന്റർനെറ്റ് ഒരിക്കലും ഉറങ്ങാത്തതിനാൽ ദിവസത്തിൽ 24 മണിക്കൂറും ആഴ്ചയിൽ 7 ദിവസവും പ്രവർത്തിക്കുന്നു, ഇതേ ആശയം ആപ്പുകൾക്കും ബാധകമാണ്.
ഇത് ചെയ്യുന്നതിനും ആപ്ലിക്കേഷൻ ലഭ്യത ഉറപ്പാക്കുന്നതിനും സ്കേലബിലിറ്റി നിർണായകമാണ്. ലഭ്യത ഉറപ്പാക്കുന്നതിനുള്ള ഏറ്റവും പ്രധാനപ്പെട്ട ഘടകങ്ങളിലൊന്നാണ് ലോഡ് ബാലൻസിംഗ്. ഒരു ലളിതമായ സ്ക്രിപ്റ്റ് ഉപയോഗിച്ച് ലോഡ് ബാലൻസിംഗ് പൂർത്തിയാക്കാൻ കഴിയുമെന്ന് പലരും ഇപ്പോഴും വിശ്വസിക്കുന്നു.
എന്നിരുന്നാലും, ഇത് അങ്ങനെയല്ല. ലോകമെമ്പാടുമുള്ള പ്രോഗ്രാമുകളിലേക്ക് ഇത് മാത്രം ആക്സസ് നൽകുന്നു - ഏത് സമയത്തും ഏത് ഉപകരണത്തിൽ നിന്നും.
ഈ പോസ്റ്റിൽ, ലോഡ് ബാലൻസിംഗ്, അതിന്റെ അൽഗരിതങ്ങൾ, മൈക്രോസർവീസുകളുമായി ഇത് എങ്ങനെ ബന്ധപ്പെട്ടിരിക്കുന്നു തുടങ്ങിയ കാര്യങ്ങൾ ഞങ്ങൾ ആഴത്തിൽ പരിശോധിക്കും. നമുക്ക് തുടങ്ങാം!
എന്താണ് ലോഡ് ബാലൻസിംഗ്?
ഒരു വെബ്സൈറ്റിനോ ബിസിനസ്സ് ആപ്ലിക്കേഷനോ ഉള്ള ആവശ്യം വർദ്ധിക്കുന്നതിനനുസരിച്ച്, ഒരു സെർവറിന് മുഴുവൻ ലോഡും കൈകാര്യം ചെയ്യാൻ ഉടൻ കഴിയില്ല. ഡിമാൻഡ് തൃപ്തിപ്പെടുത്തുന്നതിനായി ഓർഗനൈസേഷനുകൾ നിരവധി സെർവറുകളിൽ ജോലിഭാരം വിതരണം ചെയ്യുന്നു. "ലോഡ് ബാലൻസിംഗ്" എന്നറിയപ്പെടുന്ന ഈ രീതി, ഒരൊറ്റ സെർവറിനെ ഓവർലോഡ് ചെയ്യാതെ സൂക്ഷിക്കുന്നു, ഇത് വേഗത കുറയുന്നതിനും അഭ്യർത്ഥനകൾ ഉപേക്ഷിക്കുന്നതിനും അല്ലെങ്കിൽ തകരുന്നതിനും കാരണമാകും.
റിസോഴ്സ് ഓവർലോഡ് കാരണം പരാജയപ്പെടാതിരിക്കാൻ ലോഡ് ബാലൻസിങ് നെറ്റ്വർക്ക് ട്രാഫിക്കിനെ തുല്യമായി വിതരണം ചെയ്യുന്നു. ആപ്ലിക്കേഷനുകൾ, വെബ്സൈറ്റുകൾ, ഡാറ്റാബേസുകൾ, മറ്റ് കമ്പ്യൂട്ടർ ഉറവിടങ്ങൾ എന്നിവ മികച്ച പ്രകടനം കാഴ്ചവെക്കുകയും ഈ രീതി ഉപയോഗിച്ച് കൂടുതൽ ലഭ്യമാവുകയും ചെയ്യുന്നു. ഉപയോക്തൃ അഭ്യർത്ഥനകൾ കൃത്യവും സമയബന്ധിതവുമായ പ്രോസസ്സിംഗിനും ഇത് സഹായിക്കുന്നു.
ഉപയോക്താവിന്റെ വീക്ഷണകോണിൽ, ലോഡ് ബാലൻസിംഗ് ഒരു ക്ലയന്റിനും സെർവറുകളുടെ ഒരു ശേഖരത്തിനും ഇടയിൽ കാണാത്ത ഇടനിലക്കാരനായി പ്രവർത്തിക്കുന്നു, കണക്ഷൻ അഭ്യർത്ഥനകൾ ഉപേക്ഷിക്കപ്പെടുന്നില്ലെന്ന് ഉറപ്പാക്കുന്നു. ലോഡ് ബാലൻസിംഗ് ഇല്ലാതെ ഡിമാൻഡ് വളരെ വലുതായാൽ ആപ്ലിക്കേഷനുകൾ, വെബ്സൈറ്റുകൾ, ഡാറ്റാബേസുകൾ, ഓൺലൈൻ സേവനങ്ങൾ എന്നിവ തകരാൻ സാധ്യതയുണ്ട്.
ഒരേ സമയം ഉയർന്ന ട്രാഫിക്കുള്ള ഒരു വെബ്സൈറ്റിലേക്ക് ലക്ഷക്കണക്കിന് ഉപയോക്തൃ അഭ്യർത്ഥനകൾ അയയ്ക്കാൻ കഴിയും. ടെക്സ്റ്റ്, ഇമേജുകൾ, വീഡിയോ, ഓഡിയോ സ്ട്രീമിംഗ് എന്നിവ പോലുള്ള അഭ്യർത്ഥിച്ച ഉള്ളടക്കം ഉപയോഗിച്ച് വെബ് പേജുകൾ ശരിയായി പോപ്പുലേറ്റ് ചെയ്യുന്നതിന് ഒന്നിലധികം സെർവറുകൾ ആവശ്യമാണ്. ഹൈ-ട്രാഫിക് വെബ്സൈറ്റ് സെർവർ ഫാമുകളിലും ഡിഎൻഎസ് സെർവറുകൾ, ഡാറ്റാബേസുകൾ, ഫയൽ ട്രാൻസ്ഫർ പ്രോട്ടോക്കോൾ (എഫ്ടിപി) സൈറ്റുകളിലും ലോഡ് ബാലൻസിംഗ് സാധാരണയായി ഉപയോഗിക്കുന്നു.
ഒരൊറ്റ സെർവറിന് അമിതഭാരമുണ്ടെങ്കിൽ, ഇത് മോശമായി പ്രവർത്തിക്കുകയോ അല്ലെങ്കിൽ തകരുകയോ ചെയ്യാം. സെർവറുകളുടെ ഒരു ശേഖരത്തിൽ ഉപയോക്തൃ അഭ്യർത്ഥനകൾ തുല്യമായി വിതരണം ചെയ്യുന്നതിലൂടെ ലോഡ് ബാലൻസറുകൾ പ്രവർത്തനരഹിതമാകാനുള്ള സാധ്യത കുറയ്ക്കുന്നു. ഗ്രൂപ്പിലെ സെർവറുകളിൽ ഒന്ന് പരാജയപ്പെടുകയാണെങ്കിൽ, ഗ്രൂപ്പിലെ മറ്റ് സെർവറുകളിലേക്ക് ട്രാഫിക് റീറൂട്ട് ചെയ്യും. സെർവർ പൂളിലേക്ക് ചേർക്കുമ്പോൾ ട്രാഫിക് വിതരണ പ്രക്രിയയിൽ ഒരു ലോഡ് ബാലൻസർ സ്വയമേവ പുതിയ സെർവറുകൾ ചേർക്കുന്നു.
ലോഡ് ബാലൻസിങ് എങ്ങനെയാണ് പ്രവർത്തിക്കുന്നത്?
ഇത് ഇനിപ്പറയുന്ന രീതിയിൽ പ്രവർത്തിക്കുന്നു:
- ഒരു ക്ലയന്റ് ഒരു ബ്രൗസർ അല്ലെങ്കിൽ ഒരു ആപ്ലിക്കേഷൻ വഴി ഒരു അഭ്യർത്ഥന ലഭിക്കുമ്പോൾ, അത് സെർവറുമായി ബന്ധിപ്പിക്കാൻ ശ്രമിക്കുന്നു.
- ഒരു ലോഡ് ബാലൻസറിന് ഒരു അഭ്യർത്ഥന ലഭിക്കുമ്പോൾ, അത് അൽഗോരിതം (അല്ലെങ്കിൽ ഫാം) വഴി സ്ഥാപിതമായ പാറ്റേണുകളെ അടിസ്ഥാനമാക്കി ഒരു സെർവർ ഗ്രൂപ്പിലെ സെർവറുകളിൽ ഒന്നിലേക്ക് റൂട്ട് ചെയ്യുന്നു.
- സെർവർ കണക്ഷൻ അഭ്യർത്ഥന സ്വീകരിക്കുകയും ലോഡ് ബാലൻസറിലൂടെ ക്ലയന്റിന് ഉത്തരം നൽകുകയും ചെയ്യുന്നു.
- ലോഡ് ബാലൻസറിന് പ്രതികരണം ലഭിക്കുമ്പോൾ, അത് തിരഞ്ഞെടുത്ത സെർവറിന്റെ IP വിലാസവുമായി ക്ലയന്റിന്റെ IP വിലാസവുമായി പൊരുത്തപ്പെടുന്നു. തുടർന്ന്, പാക്കറ്റിനൊപ്പം ഉത്തരം കൈമാറുന്നു.
- സെർവറുകൾ ചെയ്യേണ്ടതില്ലാത്ത വിധം സെക്യൂരിറ്റി സോക്കറ്റ് ലെയർ എൻക്രിപ്ഷൻ പ്രോട്ടോക്കോൾ ഉപയോഗിച്ച് ഡാറ്റ ഡീക്രിപ്റ്റ് ചെയ്യുന്ന പ്രക്രിയയാണ് SSL ഓഫ്ലോഡ്.
- സെഷൻ അവസാനിക്കുന്നതുവരെ നടപടിക്രമം ആവർത്തിക്കുന്നു.
ലോഡ് ബാലൻസിങ് രീതികൾ
ഒരു സെർവർ ഫാമിലെ സെർവറുകളിൽ ഏതാണ് അടുത്ത അഭ്യർത്ഥന ലഭിക്കേണ്ടതെന്ന് തിരഞ്ഞെടുക്കാൻ, ഓരോ ലോഡ് ബാലൻസിങ് ടെക്നിക്കും ഒരു കൂട്ടം മാനദണ്ഡങ്ങൾ ഉപയോഗിക്കുന്നു. ലോഡ് ബാലൻസിംഗിനായി അഞ്ച് സാധാരണ സമീപനങ്ങളുണ്ട്:
- റ ound ണ്ട് റോബിൻ: ഇതാണ് സ്ഥിരസ്ഥിതി സമീപനം, അത് തോന്നുന്നത് പോലെ തന്നെ പ്രവർത്തിക്കുന്നു. ലോഡ് ബാലൻസർ ഒരു റൊട്ടേറ്റിംഗ് പാറ്റേണിൽ അഭ്യർത്ഥനകൾ വിതരണം ചെയ്യുന്നു, ഗ്രൂപ്പിലെ ആദ്യ സെർവറിൽ നിന്ന് ആരംഭിച്ച് താഴേക്ക് നീങ്ങുന്നു, അവിടെ അത് വീണ്ടും വിളിക്കപ്പെടാൻ കാത്തിരിക്കുന്നു. ഓരോ സെർവറും ഏകദേശം ഒരേ എണ്ണം കണക്ഷനുകൾ കൈകാര്യം ചെയ്യുന്നുണ്ടെന്ന് ഈ രീതി ഉറപ്പാക്കുന്നു.
- വെയ്റ്റഡ് റൗണ്ട് റോബിൻ: ഈ സമീപനം ഓരോ സെർവറിനും അതിന്റെ ശേഷിക്ക് പൊതുവെ ആനുപാതികമായ ഒരു ഭാരം (അല്ലെങ്കിൽ മുൻഗണന) നൽകുന്നു. ഒരു സെർവറിന് കൂടുതൽ അഭ്യർത്ഥനകൾ ലഭിക്കുന്നു, ഭാരം കൂടും. ഉദാഹരണത്തിന്, രണ്ടിന്റെ ഭാരമുള്ള സെർവറിന് ഒന്നിന്റെ വെയ്റ്റ് മൂല്യമുള്ള സെർവറിനേക്കാൾ ഇരട്ടി അഭ്യർത്ഥനകൾ ലഭിക്കുന്നു.
- സ്റ്റിക്കി സെഷൻ: ഈ സമീപനം, സെഷൻ പെർസിസ്റ്റൻസ് എന്നും അറിയപ്പെടുന്നു, ഒരു സെഷന്റെ സമയത്തേക്ക് ചില ക്ലയന്റുകളെയും സെർവറുകളെയും ബന്ധിപ്പിക്കുന്നു. ലിങ്ക് സ്ഥാപിക്കുന്നതിന്, ഒരു ഉപയോക്തൃ ആട്രിബ്യൂട്ട് തിരിച്ചറിയാൻ ലോഡ് ബാലൻസർ ഒരു കുക്കി അല്ലെങ്കിൽ ഉപയോക്താവിന്റെ IP വിലാസം ഉപയോഗിക്കുന്നു. കണക്ഷൻ സ്ഥാപിച്ചുകഴിഞ്ഞാൽ, സെഷൻ അവസാനിക്കുന്നതുവരെ ഉപയോക്താവിന്റെ അഭ്യർത്ഥനകൾ അതേ സെർവറിലേക്ക് നയിക്കപ്പെടും. ഇത് നെറ്റ്വർക്ക് ഉറവിടങ്ങൾ ഒപ്റ്റിമൈസ് ചെയ്യുകയും ഉപയോക്തൃ അനുഭവം മെച്ചപ്പെടുത്തുകയും ചെയ്യുന്നു.
- ഏറ്റവും കുറഞ്ഞ കണക്ഷനുകൾ: എല്ലാ അഭ്യർത്ഥനകളും തുല്യമായ സെർവർ ഭാരത്തിന് കാരണമാകുമെന്ന് ഈ തന്ത്രം അനുമാനിക്കുന്നു. തൽഫലമായി, ഏറ്റവും ചെറിയ അഭ്യർത്ഥനകളുള്ള സെർവറിന് അടുത്ത അഭ്യർത്ഥന ലഭിക്കും.
- ഐപി ഹാഷ്: ഈ അൽഗോരിതം ക്ലയന്റിന്റെയും സെർവറിന്റെയും ഉറവിടം, ലക്ഷ്യസ്ഥാന ഐപി വിലാസങ്ങൾ എന്നിവയെ അടിസ്ഥാനമാക്കി ഒരു അദ്വിതീയ ഹാഷ് കീ സൃഷ്ടിക്കുന്നു. അഭ്യർത്ഥന റൂട്ട് ചെയ്യാൻ കീ ഉപയോഗിക്കുകയും അതേ സെർവറുമായുള്ള നഷ്ടപ്പെട്ട കണക്ഷൻ പുനരാരംഭിക്കാൻ അനുവദിക്കുകയും ചെയ്യുന്നു.
ഹാർഡ്വെയർ Vs. സോഫ്റ്റ്വെയർ ലോഡ് ബാലൻസറുകൾ
ഹാർഡ്വെയർ ലോഡ് ബാലൻസർ
ഒരു ഉപകരണം പോലെയുള്ള ഫിസിക്കൽ ഹാർഡ്വെയർ, ഹാർഡ്വെയർ ലോഡ് ബാലൻസറുകൾ ഉണ്ടാക്കുന്നു. നിലവിലുള്ള കണക്ഷനുകളുടെ എണ്ണം, പ്രൊസസർ ഉപയോഗം, സെർവർ പ്രകടനം തുടങ്ങിയ ഘടകങ്ങളെ ആശ്രയിച്ച് സെർവറുകളിലേക്കുള്ള ട്രാഫിക്കാണ് ഇവ. ഹാർഡ്വെയർ ലോഡ് ബാലൻസറുകൾക്ക് പ്രൊപ്രൈറ്ററി ഫേംവെയർ ഉണ്ട്, അത് പുതിയ പതിപ്പുകളും സുരക്ഷാ പരിഹാരങ്ങളും ലഭ്യമാകുമ്പോൾ പരിപാലിക്കുകയും അപ്ഡേറ്റ് ചെയ്യുകയും വേണം.
ഹാർഡ്വെയർ ലോഡ് ബാലൻസറുകൾ പലപ്പോഴും ഉയർന്ന പ്രകടനവും നിയന്ത്രണവും നൽകുന്നു, കൂടാതെ കെർബറോസ് പ്രാമാണീകരണം, എസ്എസ്എൽ ഹാർഡ്വെയർ ആക്സിലറേഷൻ എന്നിവ പോലുള്ള വിപുലമായ കഴിവുകളും നൽകുന്നു, എന്നാൽ അവയ്ക്ക് ചില തലത്തിലുള്ള മാനേജ്മെന്റും മെയിന്റനൻസ് വൈദഗ്ധ്യവും ആവശ്യമാണ്. ഹാർഡ്വെയർ ലോഡ് ബാലൻസറുകൾ സോഫ്റ്റ്വെയർ ലോഡ് ബാലൻസറുകളേക്കാൾ അയവുള്ളതും സ്കേലബിളും ആയതിനാൽ, ഹാർഡ്വെയർ ലോഡ് ബാലൻസറുകൾ ഓവർ പ്രൊവിഷൻ ചെയ്യാനുള്ള പ്രവണതയുണ്ട്.
സോഫ്റ്റ്വെയർ ലോഡ് ബാലൻസർ
സോഫ്റ്റ്വെയർ ലോഡ് ബാലൻസറുകൾ അവയുടെ ഹാർഡ്വെയർ എതിരാളികളേക്കാൾ സജ്ജീകരിക്കാൻ എളുപ്പമാണ്. അവ കൂടുതൽ ചെലവ് കുറഞ്ഞതും പൊരുത്തപ്പെടുത്താവുന്നതുമാണ്, കൂടാതെ അവ സോഫ്റ്റ്വെയർ വികസന പരിതസ്ഥിതികളിൽ നന്നായി പ്രവർത്തിക്കുന്നു. നിങ്ങളുടെ പരിസ്ഥിതിയുടെ കൃത്യമായ ആവശ്യകതകളനുസരിച്ച് ലോഡ് ബാലൻസറിനെ ഇഷ്ടാനുസൃതമാക്കാൻ സോഫ്റ്റ്വെയർ രീതി നിങ്ങളെ അനുവദിക്കുന്നു. ലോഡ് ബാലൻസർ സജ്ജീകരിക്കുന്നതിന് ചെലവഴിച്ച അധിക സമയത്തിന്റെ ചെലവിൽ വർദ്ധിച്ച വഴക്കം വന്നേക്കാം.
കൂടുതൽ ക്ലോസ്ഡ് ബോക്സ് സമീപനമുള്ള ഹാർഡ്വെയറുകളേക്കാൾ പരിഷ്ക്കരണങ്ങളും അപ്ഡേറ്റുകളും വരുത്തുന്നതിന് സോഫ്റ്റ്വെയർ ബാലൻസറുകൾ നിങ്ങൾക്ക് കൂടുതൽ വഴക്കം നൽകുന്നു. മുൻകൂട്ടി തയ്യാറാക്കിയ വെർച്വൽ മെഷീനുകൾ സോഫ്റ്റ്വെയർ ലോഡ് ബാലൻസറായി (VMs) ഉപയോഗിക്കാം. വെർച്വൽ മെഷീനുകൾ നിങ്ങൾക്ക് കുറച്ച് ക്രമീകരണ സമയം ലാഭിക്കും, എന്നാൽ അവയുടെ ഹാർഡ്വെയർ എതിരാളികളിൽ എല്ലാ പ്രവർത്തനങ്ങളും ലഭ്യമായേക്കില്ല.
ലളിതമായ ലോഡ് ബാലൻസിങ് നടപ്പിലാക്കൽ
ഇതിനായി ഞങ്ങൾ സ്പ്രിംഗ് ക്ലൗഡ് ലൈബ്രറി ഉപയോഗിക്കും ആപ്പുകൾ നിർമ്മിക്കുക അത് ലോഡ്-ബാലൻസ്ഡ് രീതിയിൽ മറ്റ് ആപ്പുകളിലേക്ക് കണക്ട് ചെയ്യുന്നു. റിമോട്ട് സേവന അഭ്യർത്ഥനകൾ പ്രോസസ്സ് ചെയ്യുമ്പോൾ, നമുക്ക് ഇഷ്ടമുള്ള ഏത് സാങ്കേതിക വിദ്യയും ഉപയോഗിച്ച് എളുപ്പത്തിൽ ലോഡ് ബാലൻസിംഗ് നിർമ്മിക്കാൻ കഴിയും. ഇനിപ്പറയുന്ന കോഡ് ഉദാഹരണമായി പരിഗണിക്കുക. ഞങ്ങൾ ഒരു അടിസ്ഥാന സെർവർ ആപ്ലിക്കേഷനിൽ തുടങ്ങും.
സെർവറിന് ഒരു HTTP എൻഡ്പോയിന്റ് മാത്രമേ ഉണ്ടാകൂ, അത് നിരവധി സന്ദർഭങ്ങളിൽ പ്രവർത്തിക്കും. തുടർന്ന് നിരവധി സെർവർ സന്ദർഭങ്ങളിൽ അഭ്യർത്ഥനകൾ വിതരണം ചെയ്യാൻ ലോഡ് ബാലൻസർ ഉപയോഗിക്കുന്ന ഒരു ക്ലയന്റ് ആപ്പ് ഞങ്ങൾ നിർമ്മിക്കും.
സെർവർ
ഞങ്ങൾ അടിസ്ഥാനപരമായി ആരംഭിക്കുന്നു സ്പ്രിംഗ് ബൂട്ട് ഞങ്ങളുടെ ഉദാഹരണ സെർവറിനായുള്ള അപേക്ഷ:
ആരംഭിക്കുന്നതിന്, ഞങ്ങൾ instance_ID എന്ന ഇഷ്ടാനുസൃതമാക്കാവുന്ന വേരിയബിൾ കുത്തിവയ്ക്കുന്നു. പ്രവർത്തിക്കുന്ന നിരവധി സംഭവങ്ങൾ തമ്മിൽ വേർതിരിച്ചറിയാൻ ഇത് ഞങ്ങളെ സഹായിക്കുന്നു. അതിനെ തുടർന്ന്, ഒരു സന്ദേശവും ഇൻസ്റ്റൻസ് ഐഡിയും നൽകുന്ന ഒരൊറ്റ HTTP GET എൻഡ്പോയിന്റ് ഞങ്ങൾ സൃഷ്ടിക്കുന്നു.
ഐഡി 1 ഉള്ള ഡിഫോൾട്ട് ഇൻസ്റ്റൻസ് പോർട്ട് 8080-ൽ പ്രവർത്തിക്കും. രണ്ടാമത്തെ ഉദാഹരണം സമാരംഭിക്കുന്നതിന് ഞങ്ങൾക്ക് കുറച്ച് പ്രോഗ്രാം പാരാമീറ്ററുകൾ മാത്രമേ ചേർക്കേണ്ടതുള്ളൂ:
ക്ലയന്റ്
ഇനി നമുക്ക് ക്ലയന്റ് കോഡ് നോക്കാം. ലോഡ് ബാലൻസർ വരുന്നത് ഇവിടെയാണ്, അതിനാൽ ഇത് ഞങ്ങളുടെ ആപ്ലിക്കേഷനിൽ ഉൾപ്പെടുത്തിക്കൊണ്ട് ആരംഭിക്കാം:
അതിനെ തുടർന്ന്, ServiceInstanceListSupplier-ന്റെ ഒരു നടപ്പാക്കൽ ഞങ്ങൾ വികസിപ്പിക്കുന്നു. ലോഡ് ബാലൻസറിലെ ഏറ്റവും പ്രധാനപ്പെട്ട ഇന്റർഫേസുകളിൽ ഒന്നാണിത്. ആക്സസ് ചെയ്യാവുന്ന സേവന സംഭവങ്ങൾ ഞങ്ങൾ എങ്ങനെ കണ്ടെത്തുമെന്ന് ഇത് വ്യക്തമാക്കുന്നു.
ഞങ്ങളുടെ മാതൃകാ ആപ്ലിക്കേഷനിൽ ഞങ്ങളുടെ ഉദാഹരണ സെർവറിന്റെ രണ്ട് വ്യത്യസ്ത സംഭവങ്ങൾ ഞങ്ങൾ ഹാർഡ്-കോഡ് ചെയ്യും. അവ ഒരേ സിസ്റ്റത്തിൽ പ്രവർത്തിക്കുന്നു, പക്ഷേ പ്രത്യേക പോർട്ടുകൾ ഉപയോഗിക്കുന്നു:
ഇപ്പോൾ ഒരു LoadBalancerConfiguration ക്ലാസ് സൃഷ്ടിക്കുക:
ഈ ക്ലാസിന് ഒരേയൊരു ഉദ്ദേശ്യമേ ഉള്ളൂ: റിമോട്ട് അഭ്യർത്ഥനകൾ നടത്തുന്നതിനായി ഇത് ഒരു ലോഡ്-ബാലൻസ്ഡ് WebClient ബിൽഡർ സൃഷ്ടിക്കുന്നു. ഞങ്ങളുടെ വ്യാഖ്യാനം സേവനത്തിനായി ഒരു സാങ്കൽപ്പിക പേര് ഉപയോഗിക്കുന്നു.
സംഭവങ്ങൾക്ക് മുമ്പായി റൺ ചെയ്യുന്നതിനുള്ള കൃത്യമായ ഹോസ്റ്റ് നെയിമുകളും പോർട്ടുകളും ഞങ്ങൾക്ക് മിക്കവാറും അറിയില്ല എന്നതാണ് ഇതിന് കാരണം. തൽഫലമായി, ഞങ്ങൾ ഒരു സാങ്കൽപ്പിക പേര് ഒരു പ്ലെയ്സ്ഹോൾഡറായി ഉപയോഗിക്കുന്നു, കൂടാതെ ഒരു റണ്ണിംഗ് ഇൻസ്റ്റൻസ് തിരഞ്ഞെടുക്കുമ്പോൾ ഫ്രെയിംവർക്ക് യഥാർത്ഥ വിവരങ്ങൾ മാറ്റിസ്ഥാപിക്കും.
അടുത്തതായി, നമുക്ക് ഒരു കോൺഫിഗറേഷൻ ക്ലാസ് ഉണ്ടാക്കാം, അത് ഞങ്ങളുടെ സേവന ഇൻസ്റ്റൻസ് സപ്ലൈ തൽക്ഷണം ചെയ്യാൻ ഉപയോഗിക്കും. ഞങ്ങൾ മുമ്പത്തെ അതേ അപരനാമമാണ് ഉപയോഗിക്കുന്നത് എന്നത് ശ്രദ്ധിക്കുക:
നമുക്ക് ഇപ്പോൾ യഥാർത്ഥ ക്ലയന്റ് ആപ്ലിക്കേഷൻ നിർമ്മിക്കാൻ കഴിയും. നേരത്തെ മുതൽ WebClient ബീൻ ഉപയോഗിച്ച് സാമ്പിൾ സെർവറിലേക്ക് 10 ചോദ്യങ്ങൾ അയക്കാം:
രണ്ട് വ്യത്യസ്ത സന്ദർഭങ്ങൾക്കിടയിൽ ഞങ്ങൾ ലോഡ് ബാലൻസ് ചെയ്യുന്നുണ്ടെന്ന് ഔട്ട്പുട്ടിൽ നിന്ന് നമുക്ക് കാണാൻ കഴിയും:
മൈക്രോസർവീസുകളിൽ ലോഡ് ബാലൻസിങ്
നെറ്റ്ഫ്ലിക്സും ആമസോണും പോലെയുള്ള നിരവധി കമ്പനികൾ, അയഞ്ഞ ബന്ധിപ്പിച്ച സേവനങ്ങളുടെ ഒരു കൂട്ടമായി ബിസിനസ് ആപ്ലിക്കേഷനുകൾ വികസിപ്പിക്കുന്നതിന് മൈക്രോ സർവീസ് ആർക്കിടെക്ചർ ഉപയോഗിക്കുന്നു. സങ്കീർണ്ണമായ ആപ്ലിക്കേഷനുകൾക്കുള്ള ഹൈപ്പർസ്കെയിലും തുടർച്ചയായ ഡെലിവറിയും ഈ വിതരണം ചെയ്ത, അയഞ്ഞ ബന്ധിത ആർക്കിടെക്ചറിലേക്ക് മാറുന്നതിനുള്ള രണ്ട് കാരണങ്ങൾ മാത്രമാണ്.
പരമ്പരാഗത രീതികളേക്കാൾ വേഗത്തിലും കുറഞ്ഞ പരാജയ നിരക്കിലും ആപ്പുകൾ നിർമ്മിക്കുന്നതിന് ഈ എന്റർപ്രൈസസിന്റെ ടീമുകൾ Agile, DevOps തന്ത്രങ്ങൾ നടപ്പിലാക്കിയിട്ടുണ്ട്. എന്നിരുന്നാലും, നിങ്ങൾ വിതരണം ചെയ്ത ആർക്കിടെക്ചറിന്റെ സങ്കീർണ്ണതയും ആപ്ലിക്കേഷന്റെ ആവശ്യകതകളും സ്കെയിൽ ആവശ്യകതകളും സമയ-വിപണി പരിമിതികളും തമ്മിൽ സന്തുലിതമാക്കണം.
ഇത്രയും വർഷങ്ങളായി, പരിസരത്തോ ക്ലൗഡിലോ ഹോസ്റ്റ് ചെയ്തിരിക്കുന്ന കോർപ്പറേറ്റ് ആപ്ലിക്കേഷനുകൾക്കായുള്ള സേവന-തല ആവശ്യകതകൾ നിറവേറ്റുന്നതിന് ആപ്ലിക്കേഷൻ ഡെലിവറി കൺട്രോളറുകൾ (ADCs) നിർണായകമാണ്. ഒരു മൈക്രോസർവീസ് അധിഷ്ഠിത ആപ്ലിക്കേഷനുമായി ഇടപഴകുന്ന ഒരു ക്ലയന്റ്, ക്ലയന്റിനെയും മൈക്രോസർവീസിനെയും സ്വതന്ത്രമായി വളർത്തുന്നതിന് അത് നൽകുന്ന സംഭവങ്ങളെക്കുറിച്ച് അറിയേണ്ടതില്ല.
ഇത് കൃത്യമായി ഒരു റിവേഴ്സ് പ്രോക്സി അല്ലെങ്കിൽ ഒരു ലോഡ് ബാലൻസർ നൽകുന്ന ഡീകൂപ്പിംഗ് ആണ്. വീണ്ടും, ഡിമാൻഡ്, സുരക്ഷ, ലഭ്യത എന്നിവ കൈകാര്യം ചെയ്യാൻ മൈക്രോസർവീസുകൾക്ക് കഴിയുമെന്ന് ഉറപ്പാക്കുന്നതിനുള്ള പരിഹാരമാണ് ലോഡ് ബാലൻസിംഗ്.
ക്ലയന്റിനും മൈക്രോസർവീസ് അധിഷ്ഠിത ആപ്പുകൾക്കും ഇടയിലുള്ള പരമ്പരാഗത നോർത്ത്-സൗത്ത് ലോഡ് ബാലൻസിംഗും തിരശ്ചീന സ്കേലബിളിറ്റിക്കായി കിഴക്ക്-പടിഞ്ഞാറ് വിന്യാസവും നിങ്ങൾ സംയോജിപ്പിക്കുമ്പോൾ, നിങ്ങൾക്ക് ഗണ്യമായ ബൂസ്റ്റ് ലഭിക്കും. വികസന ചാപല്യം ത്യജിക്കാതെ ഐടിക്ക് ആവശ്യമായ സുരക്ഷിതവും നിയന്ത്രിതവുമായ അന്തരീക്ഷം നിലനിർത്തുക എന്നതാണ് ലക്ഷ്യം. DevOps ഓട്ടോമേഷൻ ആവശ്യകതകൾ.
ആനുകൂല്യങ്ങൾ
വിഭവ വിനിയോഗം, ഡാറ്റ ഡെലിവറി, ഉയർന്ന ട്രാഫിക്കുള്ള വെബ്സൈറ്റുകൾക്കും ആപ്പുകൾക്കുമുള്ള പ്രതികരണ സമയം, കൂടാതെ ധാരാളം ചോദ്യങ്ങൾ ലഭിക്കുന്ന ഡാറ്റാബേസുകൾ എന്നിവ മെച്ചപ്പെടുത്തുന്നതിലൂടെ ലോഡ് ബാലൻസിംഗ് വിവിധ ആനുകൂല്യങ്ങൾ നൽകുന്നു. ഉയർന്ന ട്രാഫിക്കുള്ള സാഹചര്യങ്ങളിൽ ഉപയോക്തൃ അഭ്യർത്ഥനകൾ വേഗത്തിലും കൃത്യമായും നിറവേറ്റപ്പെടുന്നുവെന്ന് ലോഡ് ബാലൻസിംഗ് ഉറപ്പാക്കുന്നു.
മന്ദഗതിയിലുള്ള പ്രോഗ്രാമുകളും വിഭവങ്ങളും കൈകാര്യം ചെയ്യുന്നതിന്റെ തീവ്രത അവർ ഉപയോക്താക്കളെ സംരക്ഷിക്കുന്നു. പ്രവർത്തനരഹിതമായ സമയം ഒഴിവാക്കാനും സുരക്ഷ ലഘൂകരിക്കാനും ലോഡ് ബാലൻസിംഗ് സഹായിക്കുന്നു, നിങ്ങളുടെ കമ്പനിയുടെ നഷ്ടമായ ഉൽപ്പാദനക്ഷമതയുടെയും വരുമാനത്തിന്റെയും അപകടസാധ്യത കുറയ്ക്കുന്നു.
- ഒപ്റ്റിമൽ കാര്യക്ഷമതയിലേക്ക് ട്രാഫിക് നിയന്ത്രിക്കുന്നതിനൊപ്പം, ഡിമാൻഡ് അനുസരിച്ച് സെർവറുകൾ ചേർക്കാനും നീക്കംചെയ്യാനുമുള്ള വഴക്കം ലോഡ് ബാലൻസിംഗ് നൽകുന്നു. മെയിന്റനൻസ് സമയത്ത് ട്രാഫിക് മറ്റ് സെർവറുകളിലേക്ക് വഴിതിരിച്ചുവിടുന്നതിനാൽ, ഉപയോക്താക്കളെ തടസ്സപ്പെടുത്താതെ സെർവർ മെയിന്റനൻസ് ഏറ്റെടുക്കുന്നതും സാധ്യമാണ്.
- ഒരു കൂട്ടം സെർവറുകൾക്കിടയിൽ ട്രാഫിക് വിഭജിച്ച് ലോഡ് ബാലൻസിംഗ് ബിൽറ്റ്-ഇൻ റിഡൻഡൻസി നൽകുന്നു. ഒന്ന് പരാജയപ്പെടുകയാണെങ്കിൽ നിങ്ങൾക്ക് ഉടൻ തന്നെ മറ്റ് സെർവറുകളിലേക്ക് ലോഡ് വഴിതിരിച്ചുവിടാൻ കഴിയും, ഇത് ഉപയോക്താക്കളിൽ ആഘാതം കുറയ്ക്കും.
- ഒരു ആപ്ലിക്കേഷന്റെയോ വെബ്സൈറ്റിന്റെയോ ഉപയോഗം വർദ്ധിക്കുകയാണെങ്കിൽ, കാര്യക്ഷമമായി കൈകാര്യം ചെയ്തില്ലെങ്കിൽ വർദ്ധിച്ച ട്രാഫിക് അതിന്റെ പ്രകടനത്തെ മോശമാക്കിയേക്കാം. ലോഡ് ബാലൻസിംഗ് ഉപയോഗിച്ച്, സേവനത്തെ തടസ്സപ്പെടുത്താതെ ഡിമാൻഡ് നിറവേറ്റുന്നതിന് നിങ്ങൾക്ക് ഒരു യഥാർത്ഥ അല്ലെങ്കിൽ വെർച്വൽ സെർവർ ചേർക്കാൻ കഴിയും. ലോഡ് ബാലൻസർ പുതിയ സെർവറുകൾ ഓൺലൈനിൽ വരുമ്പോൾ അവയെ തിരിച്ചറിയുകയും അവയെ അനായാസമായി പ്രവർത്തനത്തിൽ ഉൾപ്പെടുത്തുകയും ചെയ്യുന്നു. അമിതഭാരമുള്ള സെർവറിൽ നിന്ന് പുതിയതിലേക്ക് ഒരു വെബ്സൈറ്റ് മൈഗ്രേറ്റ് ചെയ്യുന്നതിനേക്കാൾ ഈ രീതി അഭികാമ്യമാണ്, അതിൽ പലപ്പോഴും പ്രവർത്തനരഹിതമായ സമയം ഉൾപ്പെടുന്നു.
തീരുമാനം
സമകാലിക, തെറ്റ്-സഹിഷ്ണുതയുള്ള സിസ്റ്റങ്ങളുടെ ഒരു നിർണായക ഘടകമാണ് ലോഡ് ബാലൻസിംഗ്. വിവിധ ലോഡ് ബാലൻസിംഗ് സമീപനങ്ങൾ ഉപയോഗിച്ച് ഒന്നിലധികം സേവന സന്ദർഭങ്ങളിലേക്ക് അഭ്യർത്ഥനകൾ വിതരണം ചെയ്യുന്ന ആപ്പുകൾ നമുക്ക് നിർമ്മിക്കാം. ആപ്ലിക്കേഷനുകൾ സുരക്ഷിതമായി നൽകുന്നതിന് ബിസിനസുകൾ സങ്കീർണ്ണമായ ഐടി സംവിധാനങ്ങളെ പിന്തുണയ്ക്കണം.
ക്രോസ്-ഡൊമെയ്ൻ മൈക്രോസർവീസസ് കോൺഫിഗറേഷൻ, വിന്യാസം, പരിപാലനം എന്നിവ പിശക് സാധ്യതയുള്ളതും ചെലവേറിയതും സമയമെടുക്കുന്നതും ആയിരിക്കാം. ഈ മൈക്രോസർവീസുകളുടെ സജ്ജീകരണവും അറ്റകുറ്റപ്പണിയും എളുപ്പമാക്കുന്നതിന് ഐടി ഓട്ടോമേഷൻ, വിസിബിലിറ്റി, അനലിറ്റിക്സ്, ഓർക്കസ്ട്രേഷൻ എന്നിവ അവരുടെ ചടുലമായ, DevOps പ്രക്രിയകളുമായി പൊരുത്തപ്പെടുന്ന മികച്ച രീതികളും സാങ്കേതികവിദ്യകളും ഉപയോഗിക്കണം.
നിങ്ങളുടെ അഭിപ്രായങ്ങൾ രേഖപ്പെടുത്തുക