برنامه نویسی

آیا شما در حال دست کم گرفتن دروازه API خود هستید؟

بیشترین استفاده را از بهار Cloud Gateway (Boot Spring 3.3 ، Spring Cloud 2023.x)

tl ؛ دکتر
بهار Cloud Gateway (2023.x) فقط یک روتر نیست. این یک ابزار قدرتمند است که می تواند:

  • معماری خود را ساده کنید
  • افزایش عملکرد با I/O غیر مسدود
  • امنیت و قوام را اجرا کنید
  • کاهش تکثیر کد را در میکروسرویس ها کاهش دهید

اگر از Spring Boot 3.3 و Spring Cloud 2023.x استفاده می کنید ، از این ابزار استفاده نکنید. این کار را برای شما انجام دهید – کاملاً ، کارآمد و هوشمندانه.


در یک راه اندازی میکروسرویس ، API Gateway اولین توقف برای کلیه درخواست های مشتری است. این در مقابل خدمات شما قرار دارد و نقش COP Traffic را بازی می کند – نوسازی ، فیلتر و حتی گاهی اوقات درخواست ها. اما آیا ما به اندازه کافی مسئولیت آن را می دهیم؟

با استفاده از بهار Cloud Gateway (SCG) ، به ویژه نسخه های اخیر مانند 2023.0.x (جفت شده با Boot Spring 3.3.x) ، می توانید خیلی بیشتر از مسیریابی اساسی انجام دهید. وقت آن است که فراتر از حداقل استفاده و باز کردن تمام پتانسیل های خود را باز کنیم.


چرا به جای Zuul Gateway بهار؟

پروژه های قدیمی هنوز هم ممکن است از Netflix Zuul استفاده کنند ، اما آن کتابخانه برای برنامه های همزمان و مسدود کننده ساخته شده است. از طرف دیگر دروازه بهار Cloud Gateway در Netty ، یک کتابخانه شبکه ای غیر مسدود کننده و واکنش پذیر ساخته شده است. این بدان معنی است:

  • درخواست سریعتر دست زدن به بار
  • استفاده از منابع پایین
  • پشتیبانی از میکروسرویسهای مدرن Async

اگر در حال حاضر از Spring Boot 3+ و Spring Cloud 2023.x استفاده می کنید ، در یک مکان عالی برای پذیرش کامل این مزایا هستید.


اما اینجا گرفتن …

برخی از تیم ها سعی می کنند “سبک را سبک نگه دارند”. این به نظر می رسد روی کاغذ خوب است ، اما اغلب به معنای از دست دادن ویژگی های کلیدی است که در سطح دروازه قرار دارد – نه در داخل هر میکروسرویس.

با فشار بیش از حد منطق در پایین دست ، شما:

  • کد تکراری (به عنوان مثال ، برای AUTH ، محدود کردن نرخ)
  • در سیاست های امنیتی قوام خود را از دست دهید
  • تلاش برای نگهداری را افزایش دهید
  • با تکرار کار ، درخواست ها را کاهش دهید

دروازه باید از چه چیزی برخورد کند؟

در اینجا چهار مورد استفاده قدرتمند وجود دارد که دروازه ابر بهار می درخشد:

1. احراز هویت و مجوز متمرکز
اجازه ندهید که هر میکروسرویس دارای نشانه ها و نقش ها باشد. بگذارید یک دروازه یک بار دسترسی داشته باشد ، نتیجه را در پایین دست بگذارد و خدمات خود را بر منطق تجارت متمرکز کنید.

برای کنترل JWT یا OAUTH2 در لبه ، از بهار-گیتووی بهار استفاده کنید و در فیلترهای امنیتی بهار وصل کنید.

2. محدودیت و ذخیره سازی نرخ
خدمات خود را در برابر سوءاستفاده با اجرای محدودیت ها در نقطه ورود محافظت کنید. SCG از محدودیت نرخ بازگردانی پشتیبانی می کند ، که به خوبی مقیاس می شود و تنظیم آن آسان است.

spring:
  cloud:
    gateway:
      routes:
        - id: my-route
          uri: http://my-service
          predicates:
            - Path=/api/**
          filters:
            - name: RequestRateLimiter
              args:
                redis-rate-limiter.replenishRate: 10
                redis-rate-limiter.burstCapacity: 20
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

3. ترجمه پروتکل
آیا می خواهید نقاط پایانی استراحت را در معرض دید مشتری قرار دهید اما از GRPC یا WebSockets در داخل استفاده می کنید؟ بگذارید ترجمه پروتکل را کنترل کند. به این ترتیب ، خدمات شما نیازی به مراقبت از نحوه صحبت مشتری با آنها ندارند.

4. جمع آوری و فیلتر
می توانید از Spring Cloud Gateway برای جمع آوری داده ها از چندین سرویس و ایجاد پاسخ های کامپوزیت استفاده کنید. این برای برنامه های موبایل یا جلوی آن مفید است که کمتر سفرهای دور را ترجیح می دهند.

به علاوه ، با فیلترها ، می توانید درخواست ها را یک بار در لبه و نه در هر سرویس وارد کنید ، اعتبار یا تغییر دهید.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا