Dubbo与Sentinel集成记录
环境
Dubbo版本:3.0.7
Sentinel版本:1.8.6
JDK:1.8
参考文档: sentinel官网文档
1.Dubbo添加依赖
provider和consumer的pom.xml (consumer不限流可以不接入)
<!-- dubbo接入sentinel-->
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-apache-dubbo3-adapter</artifactId>
<version>1.8.6</version>
</dependency>
<!-- dubbo接入sentinel控制台-->
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-transport-simple-http</artifactId>
<version>1.8.6</version>
</dependency>
2.Dubbo接入Seneinel控制台
给应用添加相关的启动参数,启动应用。需要配置的参数有:
- -Dcsp.sentinel.api.port:客户端的 port,用于上报相关信息(默认8719)
- -Dcsp.sentinel.dashboard.server:控制台的地址
- -Dproject.name:应用名称,会在控制台中显示
注意某些环境下本地运行 Dubbo 服务还需要加上 -Djava.net.preferIPv4Stack=true 参数。比如 Service Provider 示例的启动参数:
-Djava.net.preferIPv4Stack=true -Dcsp.sentinel.api.port=8719 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=dubbo-provider-demo
Service Consumer 示例的启动参数:
-Djava.net.preferIPv4Stack=true -Dcsp.sentinel.api.port=8719 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=dubbo-consumer-demo
这样在启动 Service Provider 和 Service Consumer 示例以后,就可以在 Sentinel 控制台中找到我们的服务了(需要provider和consumer互相调用一次才能展示)
3.Sentinel控制台
官网下载1.8.6版本的sentinel-dashboard-1.8.6.jar. 地址下载
sentinel启动命令
java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar ./sentinel-dashboard-1.8.6.jar
登陆sentinel控制台,账号密码都是sentinel,可看到接入的dubbo
4.Dubbo流量监控设置
限制provider的DemoService这个接口,设置qps阈值为20
5 Jmeter测试
设置50个线程同时去请求调用consumer提供的mapping,通过dubbo框架去调用这个接口
测试结果:
consumer日志展示