در میان انتقالها، جز TCP و WebSocket، gRPC هم گزینهای رایج است. بر HTTP/2 ساخته شده و ویژگی متمایزی دارد.
چه چیزی متمایزش میکند
- چندگانهسازی: HTTP/2 اجازه میدهد چند درخواست یک اتصال را بهاشتراک بگذارند، دستدادنهای مکرر کم میشود و شبکه ضعیف روانتر میشود.
- سازگار با CDN: بسیاری از CDNها بهصورت بومی از HTTP/2 / gRPC پشتیبانی میکنند، پس برای پنهان کردن مبدأ با CDN خوب جفت میشود.
- شبیه یک API معمولی: gRPC پروتکل رایج ارتباط سرویسبهسرویس است، پس شکل ترافیک آن جلبتوجه نمیکند.
در برابر WebSocket
WebSocket عمومیتر و سازگارتر است؛ gRPC در اتصالهای پایدار و چندگانهسازی برتری دارد، اما برخی CDNها یا تجهیزات میانی gRPC را ضعیف مدیریت میکنند و ممکن است ناپایدارتر شود. هر دو باید با TLS اجرا شوند.
نکات پیکربندی
کلید serviceName است که باید در دو طرف یکسان باشد — معادل gRPC برای path در WebSocket. در لایه بیرونی نیز TLS اضافه کنید.
بدون مشکل شبکه مشخص، WebSocket و gRPC حس مشابهی دارند — زیاد فکر نکنید. اگر WS مدام قطع میشود، gRPC را امتحان کنید ببینید پایدارتر است یا نه.