ساخت و اجرای یک سرور

سرور قلب تپنده اپلیکیشن وب شماست. Hyperlane ساخت و مدیریت آن‌ها را آسان می‌کند. شما می‌توانید بر اساس نیاز خود، بین سرعت و کنترل، یکی را انتخاب کنید.

سه روش برای ساخت یک سرور:

• استفاده از Server::default() برای راه‌اندازی سریع. این روش برای تست یا اپلیکیشن‌های ساده بهترین گزینه است. این متد از تنظیمات پیش‌فرض برای آدرس‌ها و محدودیت‌ها استفاده می‌کند. • استفاده از ServerConfig برای کنترل کامل. این روش به شما اجازه می‌دهد آدرس bind، گزینه‌های TCP یا TTL را تغییر دهید. • استفاده از RequestConfig برای مدیریت جزئیات درخواست. این روش برای تنظیم اندازه بافر و زمان‌های انتظار (timeouts) بهترین گزینه است.

مدیریت چرخه حیات:

زمانی که سرور را با متد run() شروع می‌کنید، یک ServerControlHook دریافت می‌کنید. این ابزار دو گزینه اصلی در اختیار شما قرار می‌دهد:

  • wait(): این متد سرور را تا زمانی که خودتان آن را متوقف نکنید، در حال اجرا نگه می‌دارد. از این متد در انتهای تابع main استفاده کنید تا از خروج برنامه جلوگیری شود.
  • shutdown(): این متد سرور را به شکلی اصولی (gracefully) متوقف می‌کند. این کار باعث می‌شود درخواست‌های جاری قبل از بسته شدن، به پایان برسند. این ویژگی از از دست رفتن داده‌ها در محیط عملیاتی (production) جلوگیری می‌کند.

گزینه‌های پیشرفته:

Hyperlane از attribute macroها برای ساده‌سازی کد استفاده می‌کند. شما می‌توانید متغیرهای سرور را مستقیماً به توابع خود تزریق کنید. این کار ساختار را تمیزتر و declarative می‌کند.

همچنین می‌توانید چندین سرور را به طور همزمان اجرا کنید. از Tokio برای اجرای اپلیکیشن‌های مختلف روی پورت‌های متفاوت استفاده کنید. این کار برای موارد زیر بسیار مناسب است:

  • اجرای HTTP و HTTPS روی پورت‌های مجزا.
  • ارائه نسخه‌های مختلف API.
  • میزبانی میکروسرویس‌ها در یک پروسس واحد.
  • جدا کردن اپلیکیشن‌های اصلی از بررسی‌های سلامت (health checks).

همیشه هنگام راه‌اندازی سرور، خطاها را مدیریت کنید. مشکلات رایج شامل پورت‌های اشغال‌شده یا خطاهای دسترسی (permission) است. نتایج خود را بررسی کنید تا از پایداری اپلیکیشن خود مطمئن شوید.

کد پروژه: https://github.com/hyperlane-dev/hyperlane منبع: https://dev.to/tengxgfyrz67s/creating-and-running-a-server-5ama