gRPC یک فریمورک ارتباطی اوپن سورس است که توسط گوگل بوجود آمده است. کاربرد اصلی این فریمورک ایجاد ارتباط کارآمد و سریع بین میکروسرویس ها است. ویژگی اصلی gRPC سریع و سبک بودن آن است که سبب میشود در طراحی سیستم های توزیع شده با مقیاس بالا انتخاب اصلی برای ارتباط بین سرویس ها باشد. این فریمورک بسیار منعطف طراحی شده است، بهصورتی که سرویس های مختلف میتوانند با زبان ها و تکنولوژی های مختلف طراحی شوند و به راحتی باهم ارتباط برقرار کنند.
در ادامه مطلب با ویژگی ها و ابعاد مختلف gRPC آشنا میشویم.
gRPC یک فریمورک ارتباطی است که به توسعه دهندگان اجازه می دهد تا سیستم های توزیع شده کلاینت-سرور بسازند. میتوان گفت gRPC رقیب اصلی REST API در ارتباط بین سرویس ها است که میتواند جایگزین آن در ارتباطات داخلی میکروسرویس ها شود.
فریمورک gRPC بر روی HTTP/2 ساخته شده است که مزایای متعددی را نسبت به HTTP/1.1 ارائه میدهد. HTTP/2 از مالتی پلکس پشتیبانی می کند، که اجازه می دهد چندین درخواست و پاسخ از طریق یک اتصال ارسال شود. gRPC همچنین از server streaming پشتیبانی میکند که تنها با یک درخواست از کلاینت میتوان تعداد زیادی پاسخ از سرور دریافت کرد.
gRPC از فایل های پروتکل بافر(Protocol Buffer) برای تعریف سرویس ها و محتویات آن ها استفاده میکند. این فایل ها شامل ساختار هایی هستند که در نقل و انتقال پیام از آن ها استفاده میکنیم. فایل های پروتکل بافر درواقع قوانین تعریف شده اند-پوینت های سرویس هستند.
پس از تعریف قوانین اند-پوینت ها در پروتکل بافر، کد های انتزاعی و پیاده سازی های داخلی سرویس ها از روی این فایل ها ایجاد میشوند. سپس انتزاعات ایجاد شده، برحسب نیاز سیستم پیاده سازی میشوند.
فایل های پروتکل بافر باید در سورس کد برنامه کلاینت و سرور یکسان باشند تا کد های تولید شده باهم همخوانی داشته باشند و به درستی عمل کنند.
برای هر زبان برنامه نویسی کتابخانه ای مختص آن زبان ایجاد شده است که کد های مورد نیاز را بر اساس قابلیت های آن زبان ایجاد میکند. لینک رپازیتوری رسمی پروتکل بافر
این روش ها به توسعه دهنده این امکان را میدهد که بر اساس نیاز های مختلف سیستم، رویکردی مناسب جهت ارتباط سرویس ها اتخاذ کند.
gRPC دارای ویژگی های مهمی است از جمله:
اگر درحال ساخت سرویس های جدید هستید یا میخواهید سرویس های موجود را از نظر عملکرد ارتقا دهید، استفاده از تکنولوژی gRPC میتواند بسیار مفید باشد.
با توجه به تستهای پراستناد منتشر شده توسط Ruwan Fernando، تکنولوژی gRPC 7 تا 10 برابر سریع تر از REST API ها هستند.
من محمدرضا باباخانی هستم، توسعه دهنده نرم افزار. در اینجا تجربیات، نظرات و پیشنهادات خودم رو درباره تکنولوژی مینویسم. امیدوارم مطالبی که مینویسم بدردتون بخوره.
ثبت دیدگاه