最近项目中需要用到集群限流,写了一个基于Springboot、Sentinel、Nacos动态集群限流的Demo,可以根据项目环境自行改造。
项目介绍
springboot集成sentinel作集群流控,使用nacos作为数据源,sentinel-dashboard修改流控规则同步到nacos,应用监听到流控规则变更进行同步,采用独立模式部署token-server,并使用zookeeper做高可用。
设计点
- 改造sentinel-dashboard修改流控规则持久化到nacos
- sentinel使用nacos数据源,动态读取流控规则
- token-server独立部署多个节点,使用zookeeper选举master作HA
架构

sentinel.png
环境
| 工具 | 版本 |
|---|---|
| JDK | 1.8 |
| springboot | 1.5.9.RELEASE |
| sentinel | 1.8.2 |
| nacos | 1.4.2 |
| zookeeper | 3.4.8 |
| curator | 4.1.0 |