4

ユーザーがプランに加入しているとします。Spring Cloud Gateway を使用して、サブスクリプション プランに基づいてユーザー リクエストをレート制限することは可能ですか? Silver プランと Gold プランがある場合、Silver サブスクリプションの replenishRate/burstCapacity を 5/10、Gold を 50/100 にすることはできますか?

私は単純に RedisRateLimiter の新しいインスタンスをフィルターに渡すことを考えました (以下を参照して、5/10 の設定で新しいインスタンスを作成します)。シルバープランとゴールドプランです。

@Bean
public RouteLocator myRoutes(RouteLocatorBuilder builder) {
    return builder.routes()
        .route(p -> p
            .path("/get")
            .filters(f ->
              f.requestRateLimiter(r -> {
                  r.setRateLimiter(new RedisRateLimiter(5, 10))
              })
            .uri("http://httpbin.org:80"))
            .build();
}

Spring Cloud Gateway でも可能なことを達成しようとしていますか? 他にどのような製品をお勧めしますか?

ありがとう!

4

1 に答える 1