1.Sentinel产品功能介绍
Sentinel是面向分布式服务架构的高可用流量防护组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定性。
Sentinel 具有以下特性:
丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。
完备的实时监控:Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运行情况。
广泛的开源生态:Sentinel 提供开箱即用的与其它开源框架 / 库的整合模块,例如与 Spring Cloud、Dubbo、gRPC 的整合。您只需要引入相应的依赖并进行简单的配置即可快速地接入 Sentinel。
完善的 SPI 扩展点:Sentinel 提供简单易用、完善的 SPI 扩展接口。您可以通过实现扩展接口来快速地定制逻辑。例如定制规则管理、适配动态数据源等。
2.1服务端启动 sentinel-dashboard
下载 sentinel 源码 https://github.com/alibaba/Sentinel
启动 dashboard。 run DashboardApplication 的 main 方法,
登录 dashboard . 默认端口是 8080,默认账号密码是 sentinel、sentinel。这个可以在 application.properties 文件中配置。
刚开始这里是没有数据的。 等后续有限流数据上报这里才会有数据展示
2.2客户端应用接入 sentinel dashboard
引入 jar
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-transport-simple-http</artifactId>
<version>1.7.2-SNAPSHOT</version>
</dependency>
示例代码:
下面的例子是一个简单的 qps 限流策略。
@RequestMapping("sentinel")
public String sentinel() {
initFlowRules();
String resourceName = "testSentinel";
Entry entry = null;
String retVal;
try {
entry = SphU.entry(resourceName, EntryType.IN);
retVal = "passed";
}catch(Exception e) {
retVal = "blocked";
}finally {
if(entry != null) {
entry.exit();
}
}
return retVal;
}
private static void initFlowRules(){
List<FlowRule> rules = new ArrayList<>();
FlowRule rule = new FlowRule();
rule.setResource("testSentinel");// 资源名称
rule.setGrade(RuleConstant.FLOW_GRADE_QPS); //qps 降级
rule.setCount(2); // 每秒 2次,超过2次就失败
rules.add(rule);
FlowRuleManager.loadRules(rules);
}
属性配置
属性可以通过 jvm 参数注入,也可以通过 classpath:sentinel.properties 配置。但是 project.name 这个当前版本只支持 jvm 参数注入,不支持配置在 sentinel.properties 文件里面。所以建议通过 jvm 注入。
jvm 参数注入:
-Dproject.name=sentinel-demo -Dcsp.sentinel.dashboard.server=127.0.0.1:8080 -Dcsp.sentinel.api.port=8081
sentinel.properties 里面
本地http服务端口
csp.sentinel.api.port=8081
dashboard 访问IP:port
csp.sentinel.dashboard.server=127.0.0.1:8080
客户端向dashboard 发送心跳包的时间间隔,单位毫秒
csp.sentinel.heartbeat.interval.ms=1000
当前版本 1.7 ,只能通过jvm 参数注入,不能配置在这里 -Dproject.name=sentinel-demo
project.name=sentinel-demo
更多参数配置见参考文档。
标签:功能,rule,介绍,sentinel,dashboard,jvm,Sentinel,csp From: https://www.cnblogs.com/chenshaojun2008/p/17790037.html