𝗖𝗿𝗲𝗮𝘁𝗶𝗻𝗴 𝗮𝗻𝗱 𝗥𝘂𝗻𝗻𝗶𝗻𝗴 𝗮 𝗦𝗲𝗿𝘃𝗲𝗿
ഒരു വെബ് ആപ്ലിക്കേഷന്റെ ഹൃദയമാണ് സെർവർ. അവ നിർമ്മിക്കുന്നതും നിയന്ത്രിക്കുന്നതും Hyperlane എളുപ്പമാക്കുന്നു. നിങ്ങളുടെ ആവശ്യാനുസരണം വേഗതയും നിയന്ത്രണവും തമ്മിൽ നിങ്ങൾക്ക് തിരഞ്ഞെടുക്കാം.
ഒരു സെർവർ നിർമ്മിക്കാനുള്ള മൂന്ന് വഴികൾ:
• വേഗത്തിലുള്ള സെറ്റപ്പിനായി Server::default() ഉപയോഗിക്കുക. ടെസ്റ്റിംഗിനോ ലളിതമായ ആപ്പുകൾക്കോ ഇത് ഏറ്റവും അനുയോജ്യമാണ്. ഇത് അഡ്രസ്സുകൾക്കും പരിധികൾക്കുമായി (limits) മുൻകൂട്ടി നിശ്ചയിച്ച ക്രമീകരണങ്ങൾ ഉപയോഗിക്കുന്നു.
• പൂർണ്ണമായ നിയന്ത്രണത്തിനായി ServerConfig ഉപയോഗിക്കുക. ഇത് നിങ്ങൾക്ക് bind address, TCP options അല്ലെങ്കിൽ TTL എന്നിവ മാറ്റാൻ അനുവദിക്കുന്നു.
• റിക്വസ്റ്റ് വിവരങ്ങൾ നിയന്ത്രിക്കാൻ RequestConfig ഉപയോഗിക്കുക. ബഫർ സൈസുകളും (buffer sizes) ടൈമൗട്ടുകളും (timeouts) ക്രമീകരിക്കുന്നതിന് ഇത് ഏറ്റവും മികച്ചതാണ്.
ലൈഫ്സൈക്കിൾ (lifecycle) നിയന്ത്രിക്കൽ:
run() മെത്തേഡ് ഉപയോഗിച്ച് നിങ്ങൾ ഒരു സെർവർ ആരംഭിച്ചുകഴിഞ്ഞാൽ, നിങ്ങൾക്ക് ഒരു ServerControlHook ലഭിക്കും. ഈ ടൂൾ നിങ്ങൾക്ക് രണ്ട് പ്രധാന ഓപ്ഷനുകൾ നൽകുന്നു:
wait(): നിങ്ങൾ നിർത്തുന്നത് വരെ ഇത് സെർവർ പ്രവർത്തിച്ചുകൊണ്ടിരിക്കാൻ സഹായിക്കുന്നു. പ്രോഗ്രാം അവസാനിക്കുന്നത് ഒഴിവാക്കാൻ നിങ്ങളുടെ main function-ന്റെ അവസാനം ഇത് ഉപയോഗിക്കുക.shutdown(): ഇത് സെർവറിനെ സുഗമമായി (gracefully) നിർത്തുന്നു. ഇത് ക്ലോസ് ചെയ്യുന്നതിന് മുമ്പ് നിലവിലുള്ള റിക്വസ്റ്റുകൾ പൂർത്തിയാക്കുന്നു. ഇത് പ്രൊഡക്ഷനിൽ (production) ഡാറ്റ നഷ്ടപ്പെടുന്നത് തടയുന്നു.
അഡ്വാൻസ്ഡ് ഓപ്ഷനുകൾ:
കോഡ് ലളിതമാക്കുന്നതിന് Hyperlane attribute macros ഉപയോഗിക്കുന്നു. നിങ്ങൾക്ക് സെർവർ വേരിയബിളുകൾ നേരിട്ട് നിങ്ങളുടെ ഫംഗ്ഷനുകളിലേക്ക് ഉൾപ്പെടുത്താം (inject). ഇത് നിങ്ങളുടെ സെറ്റപ്പ് കൂടുതൽ വൃത്തിയുള്ളതും ഡെക്ലറേറ്റീവും (declarative) ആക്കുന്നു.
നിങ്ങൾക്ക് ഒരേസമയം ഒന്നിലധികം സെർവറുകളും പ്രവർത്തിപ്പിക്കാം. വ്യത്യസ്ത പോർട്ടുകളിൽ (ports) വ്യത്യസ്ത ആപ്പുകൾ പ്രവർത്തിപ്പിക്കാൻ Tokio ഉപയോഗിക്കുക. ഇത് താഴെ പറയുന്നവയ്ക്ക് മികച്ചതാണ്:
- HTTP, HTTPS എന്നിവ വ്യത്യസ്ത പോർട്ടുകളിൽ പ്രവർത്തിപ്പിക്കുക.
- വ്യത്യസ്ത API വേർഷനുകൾ നൽകുക.
- ഒരു പ്രോസസ്സിൽ തന്നെ മൈക്രോസർവീസുകൾ ഹോസ്റ്റ് ചെയ്യുക.
- മെയിൻ ആപ്പുകളെ ഹെൽത്ത് ചെക്കുകളിൽ (health checks) നിന്ന് വേർതിരിക്കുക.
ഒരു സെർവർ ആരംഭിക്കുമ്പോൾ എപ്പോഴും എററുകൾ (errors) കൈകാര്യം ചെയ്യുക. ഉപയോഗത്തിലുള്ള പോർട്ടുകൾ (occupied ports) അല്ലെങ്കിൽ പെർമിഷൻ എററുകൾ (permission errors) എന്നിവയാണ് സാധാരണയായി ഉണ്ടാകാറുള്ള പ്രശ്നങ്ങൾ. നിങ്ങളുടെ ആപ്ലിക്കേഷൻ സുസ്ഥിരമാണെന്ന് ഉറപ്പാക്കാൻ ഫലങ്ങൾ പരിശോധിക്കുക.
Project Code: https://github.com/hyperlane-dev/hyperlane Source: https://dev.to/tengxgfyrz67s/creating-and-running-a-server-5ama