Sentinel 是什么?
Sentinel 具有以下特征:
丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。
完备的实时监控:Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运行情况。
广泛的开源生态:Sentinel 提供开箱即用的与其它开源框架/库的整合模块,例如与 Spring Cloud、Dubbo、gRPC 的整合。您只需要引入相应的依赖并进行简单的配置即可快速地接入 Sentinel。
完善的 SPI 扩展点:Sentinel 提供简单易用、完善的 SPI 扩展接口。您可以通过实现扩展接口来快速地定制逻辑。例如定制规则管理、适配动态数据源等。
Sentinel 的主要特性:
Sentinel 的开源生态:
我们大概叙述后开始整合我们的分布式项目,我这里里为一个简单分布式项目,注册中心为Nacos,一个服务提供者(user-center)和一个服务消费者(content-center)
可以看到我的content-center调用user-center/users服务
我们现在只启动content-center不启动user服务,可想而知肯定报错,我们来看
没错500,找不到user-center服务,我们现在整合Sentinel,首先加入两个依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-alibaba-sentinel</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
和actuator配合使用,可通过http://localhost:8010/actuator/sentinel端点进行查看
{ "blockPage":null, "appName":"content-center", "consoleServer":"localhost:8333", "coldFactor":"3", "rules":{ "systemRules":[ ], "authorityRule":[ ], "paramFlowRule":[ ], "flowRules":[ ], "degradeRules":[ ] }, "metricsFileCharset":"UTF-8", "filter":{ "order":-2147483648, "urlPatterns":[ "/*" ], "enabled":true }, "totalMetricsFileCount":6, "datasource":{ }, "clientIp":"192.168.2.29", "clientPort":"8719", "logUsePid":false, "metricsFileSize":52428800, "logDir":"/Users/zhangguowei/logs/csp/", "heartbeatIntervalMs":10000 }
我们暂时先不要管这些是什么我们后面再详细阐述,从JSON的形式看不太方便,Sentinel为我们整合有UI界面
整合Sentinel可视化界面
下载 sentinel的jar包然后直接启动
账号密码默认为sentinel
在项目的yml中加入
spring: datasource: url: jdbc:mysql://localhost:3306/content_center hikari: username: *** password: ****** driver-class-name: com.mysql.cj.jdbc.Driver cloud: sentinel: transport: # 指向sentinel UI界面 dashboard: localhost:8333 nacos: discovery: # 指定nacos server的地址 server-addr: localhost:8848 application: # 服务名称尽量用-,不要用_,不要用特殊字符 name: content-center server: port: 8010 management: endpoints: web: exposure: include: "*"
这个时候我们继续刚刚的500再执行几次会看到