وب‌سرویس مجید

پروژه go-grpc-middleware

grpc-ecosystem/go-grpc-middleware

کاربرد:

این پروژه مجموعه‌ای از میدلویرهای گرپی‌سی (gRPC) برای زبان گولنگ فراهم می‌کنه که به توسعه‌دهندگان کمک می‌کنه تا قابلیت‌هایی مثل زنجیره‌سازی اینترسپتورها، احراز هویت، لاگ‌گیری، تلاش مجدد (retries) و غیره رو به راحتی به سرویس‌های gRPC اضافه کنند.

در چه شرایطی بهتره استفاده شود؟

وقتی داری یک سرویس gRPC با گو (Go) می‌نویسی و نیاز داری که رفتارهای عمومی مثل مدیریت دسترسی، ردیابی درخواست‌ها یا مدیریت خطا با تلاش مجدد رو به صورت مرکزی پیاده‌سازی کنی، استفاده از این کتابخانه بسیار مفیده. همچنین برای پروژه‌هایی که به معماری میکروسرویس نزدیک هستند و نیاز به مدیریت یکپارچه درخواست‌ها دارند، عالیه.

چند مثال از موارد استفاده

اضافه کردن توکن احراز هویت به تمام درخواست‌های ورودی

ثبت لاگ از هر درخواست و پاسخ برای دیباگ و مانیتورینگ

اجرای خودکار تلاش مجدد در صورت شکست شبکه یا timeout

اعمال محدودیت نرخ (rate limiting) برای کاربران یا سرویس‌ها

ردیابی درخواست‌ها با استفاده از Tracing و افزودن کانتکست به تمام لایه‌ها

  • ##grpc
  • ##go
  • ##middleware
  • ##microservices
  • ##logging
  • ##auth
  • ##retries
  • ##interceptor
  • ##cloud
  • ##distributed