好久没有写博客了,这几天调研了阿里开源的sentinel限流工具,据说双十一采用的也是此功能,调研了几天遇到了不少坑,主要集成一下,便于大家了解。
sentinel的原理这里不介绍,为何要使用zookeeper来说一下,不使用zookeeper这些配置中心的话相当于直接通过dashboard调用server端,这样每次的限流配置只是在java的内存中生效,在项目重启之后,信息就丢失了,所以需要一个数据源去存储这些信息,因为我们原来的项目中使用了zookeeper,所以这里介绍些zookeeper的使用

首先说下server端,在pom下引入sentinel的集成包
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
<version>1.5.1.RELEASE</version>
</dependency>
注意版本号,springboot2.0以上要用2.X的版本,引用此dependency之后不需要按照官网上在去引用其他jar包,此包下包含的信息包括如下包

此处有两个坑
1.结合sentinel自带的dashboard在使用时必须和使用的版本一直,如上图中为1.7.0版本,则dashboard也必须为1.7.0,否则点击规则调用会报错
2.还有一个更深的坑是fastjson的版本也必须一致,否则点击规则后会不生效,也没有错误提示....sentinel的版本是1.2.62。如果不希望修改自己引用fastjson版本号,需要下载dashboard的源码修改fastjson版本,版本必须一致才可以
使用zookeeper的时候需要引入
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-datasource-zookeeper</artifactId>
<version>1.7.0</version>
</dependency>
此处也需要注意保持版本号一致
spring-cloud-starter-alibaba-sentinel这个集成很强大,我们并不需要去初始化任何bean对象,因为在启动的时候会自动加载上,所以只需要配置控制台和zookeeper的数据读取方式
控制台配置:
在application.yml下添加
spring:
application:
name: test
cloud:
sentinel:
transport:
port: 9303
dashboard: 192.168.2.86:8010
#heartbeatIntervalMs:
eage

本文详细介绍阿里开源的Sentinel限流工具集成过程,重点讲解如何利用Zookeeper作为配置中心,实现限流规则的持久化存储,确保项目重启后规则仍有效。同时,分享了在集成过程中遇到的问题及解决方案。
最低0.47元/天 解锁文章
3109

被折叠的 条评论
为什么被折叠?



