একটি সার্ভার তৈরি এবং চালানো
একটি সার্ভার হলো আপনার ওয়েব অ্যাপ্লিকেশনের প্রাণকেন্দ্র। Hyperlane এগুলো তৈরি এবং পরিচালনা করা সহজ করে তোলে। আপনার প্রয়োজন অনুযায়ী আপনি গতি এবং নিয়ন্ত্রণের মধ্যে যেকোনো একটি বেছে নিতে পারেন।
সার্ভার তৈরির তিনটি উপায়:
• দ্রুত সেটআপের জন্য Server::default() ব্যবহার করুন। এটি টেস্টিং বা সাধারণ অ্যাপ্লিকেশনের জন্য সবচেয়ে ভালো। এটি অ্যাড্রেস এবং লিমিটের জন্য পূর্বনির্ধারিত সেটিংস ব্যবহার করে।
• সম্পূর্ণ নিয়ন্ত্রণের জন্য ServerConfig ব্যবহার করুন। এটি আপনাকে bind address, TCP options অথবা TTL পরিবর্তন করার সুযোগ দেয়।
• রিকোয়েস্টের বিবরণ পরিচালনা করতে RequestConfig ব্যবহার করুন। এটি বাফার সাইজ এবং টাইমআউট অ্যাডজাস্ট করার জন্য সবচেয়ে উপযোগী।
লাইফসাইকেল পরিচালনা করা:
একবার আপনি run() মেথড দিয়ে একটি সার্ভার শুরু করলে, আপনি একটি ServerControlHook পাবেন। এই টুলটি আপনাকে দুটি প্রধান অপশন দেয়:
wait(): এটি আপনি থামানো না পর্যন্ত সার্ভারটিকে চালু রাখে। প্রোগ্রামটি যাতে বন্ধ না হয়ে যায় তা নিশ্চিত করতে আপনার main function-এর শেষে এটি ব্যবহার করুন।shutdown(): এটি সার্ভারটিকে সুন্দরভাবে (gracefully) বন্ধ করে দেয়। এটি বন্ধ হওয়ার আগে বর্তমান রিকোয়েস্টগুলো সম্পন্ন করে। এটি প্রোডাকশনে ডেটা লস রোধ করে।
উন্নত অপশনসমূহ:
কোড সহজ করার জন্য Hyperlane attribute macros ব্যবহার করে। আপনি সরাসরি আপনার ফাংশনগুলোতে সার্ভার ভেরিয়েবল ইনজেক্ট করতে পারেন। এটি আপনার সেটআপকে আরও পরিচ্ছন্ন এবং ডিক্লেয়ারেটিভ (declarative) করে তোলে।
আপনি একসাথে একাধিক সার্ভারও চালাতে পারেন। বিভিন্ন পোর্টে ভিন্ন ভিন্ন অ্যাপ চালানোর জন্য Tokio ব্যবহার করুন। এটি নিচের ক্ষেত্রগুলোতে ভালো কাজ করে:
- আলাদা পোর্টে HTTP এবং HTTPS চালানো।
- বিভিন্ন API ভার্সন সার্ভ করা।
- একটি প্রসেসের মধ্যে মাইক্রোসার্ভিস হোস্ট করা।
- মেইন অ্যাপগুলোকে হেলথ চেক (health checks) থেকে আলাদা রাখা।
সার্ভার শুরু করার সময় সর্বদা এরর (error) হ্যান্ডেল করুন। সাধারণ সমস্যাগুলোর মধ্যে রয়েছে অকুপাইড পোর্ট (occupied ports) বা পারমিশন এরর। আপনার অ্যাপ্লিকেশনটি স্থিতিশীল থাকে তা নিশ্চিত করতে ফলাফলগুলো পরীক্ষা করুন।
Project Code: https://github.com/hyperlane-dev/hyperlane Source: https://dev.to/tengxgfyrz67s/creating-and-running-a-server-5ama