一文教你学会搭建 sentinel

1.Sentinel和Hystrix的区别

在SpringCloud当中支持多种服务保护技术,早期比较流行的是Hystrix框架,但目前国内实用最广泛的还是阿里巴巴的Sentinel框架,这里我们做下对比:

Sentinel

Hystrix

隔离策略

信号量隔离

线程池隔离/信号量隔离

熔断降级策略

基于慢调用比例或异常比例

基于失败比率

实时指标实现

滑动窗口

滑动窗口(基于 RxJava)

规则配置

支持多种数据源

支持多种数据源

扩展性

多个扩展点

插件的形式

基于注解的支持

支持

支持

限流

基于 QPS,支持基于调用关系的限流

有限的支持

流量整形

支持慢启动、匀速排队模式

不支持

系统自适应保护

支持

不支持

控制台

开箱即用,可配置规则、查看秒级监控、机器发现等

不完善

常见框架的适配

Servlet、Spring Cloud、Dubbo、gRPC 等

Servlet、Spring Cloud Netflix

通过对比我们可以发现,相较于Hystrix,sentinel功能更为强大。

2.微服务整合sentinel

2.1.启动 sentinel jar 包

我们先把 sentinel 跑起来,我们这里是直接在本地演示没上容器,sentinel 提供了项目的下载地址: Releases · alibaba/Sentinel · GitHub,我们本项目集成的是1.8.1版本,看他的介绍需要你的jdk版本为1.8以上。

往下划,就可以看的到jar包了

下载放到磁盘的一个英文目录下,然后在文件夹里用cmd命令打开命令行窗口,执行以下命令运行sentinel

java -jar sentinel-dashboard-1.8.1.jar 

如果你需要修改默认的配置端口,可以使用以下命令:

java -Dserver.port=8090 -jar sentinel-dashboard-1.8.1.jar

用户名密码也可以加上-Dserver修改

配置项

默认值

说明

server.port

8080

服务端口

sentinel.dashboard.auth.username

sentinel

默认用户名

sentinel.dashboard.auth.password

sentinel

默认密码

我们这里直接执行就行

启动成功后访问http://localhost:8080页面,就可以看到sentinel的控制台了,输入默认的用户名和密码 sentinel

一开始进来是空白的,这时候他没有监控到任何的服务,因为这时候我们还没有整合到项目中。

2.2.项目中配置 sentinel

前面讲的章节中,我们已经搭建了微服务项目,今天我们直接在这个项目的基础上进行sentinel的整合,如果没有的小伙伴,我这里也提供了,可以参照着进行搭建,以下 address 获取:https://pan.baidu.com/s/1LacvX3CV5LsaKEFAr-QnGg?pwd=fxug 提取码:fxug

我们在 order-service 中整合 sentinel,并连接 sentinel 的控制台

引入 sentinel 依赖

<!--sentinel-->
<dependency>
    <groupId>com.alibaba.cloud</groupId> 
    <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>

配置控制台

修改order-service服务的application.yml文件,添加下面内容,这里注意的一下,最好不要手打,格式很容易出错,会导致sentinel控制台服务不显示。

server:
  port: 8082
spring:
  cloud: 
    sentinel:
      transport:
        dashboard: localhost:8080

启动nacos

启动项目的三个服务

访问order-service的任意端点

打开浏览器,访问http://localhost:8088/order/102,这样才能触发sentinel的监控。

然后再访问sentinel的控制台,查看效果:

2.3.控制台问题

途中遇到两个问题引起我控制台页面一片空白

问题1:SpringCloud与sentinel版本不匹配,我一开始搞错了版本,SpringCloud 2.2.6 的版本,而sentinel引下载的jar包为1.8.6的版本,这时候这个控制台死活显示不了服务,就是一片空白,后来降到1.8.1就好了,这个版本对应的关系在SpringCloud Alibaba官网就有,我前面的文章也有讲过了,感兴趣的小伙伴可以翻一下我的微服务专栏面前的章节。

问题2:yml配置文件格式不对,在sentinel官网文档里复制出来的配置,直接粘贴的,也是控制台一片空白,服务死活不出不来,后面把我前一个正常能启动的项目copy了一份配置过去,就解决了,也是折腾半天,这个问题是我在做另一个项目的时候出现的。

还有一点就是sentinel默认是懒加载,所以当你启动了控制台后如果你的服务没有任何请求,他的实时监控面板也是为空的,不过这时候你可以看到服务名称,如果是这种情况,你只需要给后台发送一个请求,面板就会有监控数据了

今天的分享就到这里,下一篇我们讲 Sentinel 的作用,小伙伴们三连支持一下,你的关注就是我的动力~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

顾轻鸿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值