Skip to content

SCT Agent 服务限流

liaochuntao edited this page Nov 23, 2022 · 4 revisions

配置 application.properties

在 Polaris Java Agent 安装目录下的 conf 文件夹,找到 application.properties 文件,并按照如下进行配置

# 配置服务名称
spring.application.name=${服务名称信息}
# 开启 polaris java agent 的服务注册发现能力
spring.cloud.discovery.enabled=true
# 设置北极星注册中心地址
spring.cloud.polaris.address=grpc\://127.0.0.1\:8091
# 设置注册的命名空间信息
spring.cloud.polaris.namespace=default
## 开启北极星的服务限流能力
spring.cloud.polaris.ratelimit.enabled=true
# 设置限流提示信息
spring.cloud.polaris.ratelimit.rejectRequestTips="Too Many Curl Action"
# 触发限流后 http 错误码
spring.cloud.polaris.ratelimit.rejectHttpCode=429

示例 demo

服务提供者

服务调用者

验证

启动 Demo 应用

启动服务提供者

# 构建服务提供者
mvn clean install

java -javaagent:/data/provider-agent/polaris-java-agent-${version}/polaris-agent-core-bootstrap.jar -jar provider-2.6.11.jar

启动服务调用者

# 构建服务调用者
mvn clean install

java -javaagent:/data/consumer-agent/polaris-java-agent-${version}/polaris-agent-core-bootstrap.jar -jar consumer-2.6.11.jar

设置限流规则

polaris-java-agent-ratelimit

验证

在 Spring Cloud 启动日志中,找到如下日志信息, 则表示 Polaris Java Agent 已经成功拦截原本 Spring Cloud 应用的 HttpHandler,并成功注入北极星服务限流能力。

[PolarisAgent] org.springframework.web.servlet.DispatcherServlet enable add ServletFilter to build RateLimit ability

测试服务调用

➜  agent curl http://127.0.0.1:18083/echo/hello
Hello, I'm provider, receive msg : hellomy metadata : {"internal-address":"10.21.6.36:51501","protocol":"http","internal-ip":"10.21.6.36"}%

➜  agent curl http://127.0.0.1:18083/echo/hello
"Too Many Curl Action"

➜  agent curl http://127.0.0.1:18083/echo/hello
"Too Many Curl Action"

➜  agent curl http://127.0.0.1:18083/echo/hello
"Too Many Curl Action"
Clone this wiki locally