欢迎来到阿Q社区
https://bbs.csdn.net/topics/617897123
Sentinel(分布式系统的流量防卫兵)是阿里开源的一套用于服务容错的综合性解决方案。它以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度来保护服务的稳定性。
Sentinel 提供一个轻量级的控制台,它提供机器发现、单机资源实时监控以及规则管理等功能。
https://github.com/alibaba/Sentinel/releases
#直接使用jar命令启动项目(控制台本身是一个Spring Boot项目) java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.7.jar
通过浏览器访问localhost:8080进入控制台
默认用户名密码是sentinel/sentinel,输入之后登录成功
SentineI 的控制台其实就是一个 SpringBoot 编写的程序。
我们需要将我们的微服务程序注册到控制台上,即在微服务中指定控制台的地址,并且还要开启一个跟控制台传递数据的端口,控制台也可以通过此端口调用微服务中的监控程序获取微服务的各种信息。
微服务集成 Sentinel 非常简单,只需要加入 Sentinel 的依赖即可
在 pom. xml 中加入下面依赖
com.alibaba.cloud spring-cloud-starter-alibaba-sentinel 2.1.0.RELEASE
修改 shop-order,在里面加入 sentinel 有关控制台的配置
spring: cloud: sentinel: transport: port: 9999 #跟控制台交流的端口,随意指定一个未使用的端口即可 dashboard: localhost:8080 #指定控制台服务的地址
编写一个 Controller 测试使用
@RestController @RequestMapping("/order") @Slf4j public class OrderController3 { @RequestMapping("/message1") public String message1() { return"message1"; } @RequestMapping("/message2") public String message2() { return"message2"; } }
程序启动之后,访问127.0.0.1:8091/order/message1,发现在 sentinel 管理页面看到确实有监控 shop-order 微服务
通过控制台为 message1 添加一个流控规则
通过控制台快速频繁访问,观察效果,发现限流成功。
到这儿,服务容错中间件 Sentinel 我们算是基本入门了。下一篇将为大家带来容错组件 Sentinel 的进阶文章,敬请期待吧!
后续的文章,我们将继续完善我们的微服务系统,集成更多的Alibaba组件。想要了解更多JAVA后端知识,请点击文末名片与我交流吧。留下您的一键三连,让我们在这个寒冷的东西互相温暖吧!