フレームグアバ制限の使用例
GatewayRateLimitFilter:
/ ** *限流过滤器 * / パブリック クラス GatewayRateLimitFilterが延びOncePerRequestFilterを{ プライベート RateLimiter rateLimiter = RateLimiter.create(1 )。 @Overrideは、 保護された ボイド doFilterInternal(HttpServletRequestのリクエスト、HttpServletResponseの応答れるFilterChainフィルターチェーン)がスローServletExceptionがは、IOException { System.err.println( "0レート制限を" )。 もし(rateLimiter.tryAcquire()){ filterChain.doFilter(リクエスト、レスポンス)。 } 他 { response.setStatus(HttpStatus.TOO_MANY_REQUESTS.value())。 response.setContentType( "アプリケーション/ JSON" )。 。response.getWriter()書き込み( "{\"エラー\ ":\"あまりにも多くの要求\ "}" )。 。response.getWriter()フラッシュ(); リターン; } } }
流量制限フィルタの前に、フィルタチェーンSpringSecurityの最初のフィルタをロードします
コンプリート。
コード:https://github.com/lhy1234/springcloud-security/tree/chapt-6-5-ratelimit
第VI章の要約