netflix的hystrix作为业界使用最广泛的流控框架,sentinel的开发团队自然少不了对其的学习与改进,这里有一篇开发团队写的两者的对比,总结起来就是sentinel的实现更加轻量,进行流控的维度也更多样。
使用sentinel的另一个理由就是其与国内广泛使用的各大微服务框架都做了集成,接入sentinel更加方便。这里是sentinel集成的其它框架的接入文档。
下面我们以国内使用最为广泛的微服务框架dubbo为例,探索sentinel的使用。
sentinel dashboard部署
sentinel控制台可以对接入的应用的实际流量进行监控,也可以查看,修改接入应用的流控,降级,热点等规则。开发者文档很详细的介绍了部署和接入步骤,这里不再赘述,需要提醒的是只有当被限流的服务产生实际流量时,控制台才会显示数据。
dubbo provider接入
首先引入sentinel基础依赖
对于 Apache Dubbo 2.7.x 及以上版本,使用时需引入以下模块(以 Maven 为例):
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-apache-dubbo-adapter</artifactId>
<version>x.y.z</version>
</dependency>
对于 Dubbo 2.6.x 及以下版本,使用时需引入以下模块(以 Maven 为例):
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-dubbo-adapter</artifactId>
<version>x.y.z</version>
</dependency>
写一个简单的dubbo provider
public interface DemoService {
public String sayHello(String name);
}
<dubbo:service interface=