sentinel+springboot+zookeeper集成,通过dashboard简单使用限流功能

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

好久没有写博客了,这几天调研了阿里开源的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
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值