# Polaris RateLimit Example ## 项目说明 本项目演示如何使用 Polaris ratelimit starter 完成 Spring Cloud 应用的限流管理。 [Polaris](https://github.com/polarismesh):北极星是腾讯开源的云原生的服务治理平台及组件,提供多维度的服务限流功能,防护应用系统的可靠性。 ## 示例 ### 如何接入 在启动示例进行演示之前,我们先了解一下如何接入 Polaris 限流组件。 > **注意:本章节只是为了便于您理解接入方式,本示例代码中已经完成接入工作,您无需再进行修改。** 1. 首先,修改 `pom.xml` 文件,引入 Polaris ratelimit starter。 ```xml com.tencent.cloud spring-cloud-starter-tencent-polaris-ratelimit ``` 2. 启动应用 北极星提供的example都支持在IDE中直接运行,或者编译打包后通过命令行方式进行运行。 - 在本地启动Polaris服务端。 - 在北极星服务端,可以通过控制台,在命名空间Production下,添加服务RateLimitCalleeService。 - 启动服务被调方: 1. IDE直接启动:找到主类 `RateLimitCalleeService`,执行 main 方法启动应用。 2. 打包编译后启动:首先执行 `mvn clean package` 将工程编译打包,然后执行 `java -jar ratelimit-callee-sevice-${verion}.jar`启动应用。 - 启动后,可以在北极星控制台上看到注册上来的服务实例信息。 3. 调用服务 通过浏览器访问http://127.0.0.1:48081/business/invoke,可以看到以下输出信息: ```` hello world for ratelimit service 1 hello world for ratelimit service 2 hello world for ratelimit service 3 ... ```` 4. 配置限流规则并验证 北极星提供了三个方式进行限流规则的配置(控制台、HTTP接口以及本地文件)。 本示例使用的方式为通过HTTP接口进行配置。通过以下命令来配置: ```` curl -X POST -H "Content-Type:application/json" 127.0.0.1:8090/naming/v1/ratelimits -d @rule.json ```` 5. 验证限流效果 继续访问http://127.0.0.1:48081/business/invoke,可以看到,10次调用后,就开始被限流: ```` hello world for ratelimit service 1 hello world for ratelimit service 2 ... hello world for ratelimit service 10 request has been limited, service is RateLimitCalleeService, path is /business/invoke, 11 ````