ユーザーがプランに加入しているとします。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 でも可能なことを達成しようとしていますか? 他にどのような製品をお勧めしますか?
ありがとう!