在项目中整合Sentienl(整体梳理)
本文主要是对Sentinel整个集成过程的回顾整理,描述Sentinel在系统中的位置以及Sentinel-dashboard和Sentinel-client的数据流转和交互逻辑,便于后面文章的理解和在项目中实际集成。
1、系统整体框架图
常规的微服务体系框架图如下,Sentinel支持的限流的地方有两处:
一、Nginx到API网关
二、网关到微服务提供层
Sentinel目前对于网关层和微服务层的限流有比较好的支持,集成比较方便。
2、Sentinel控制台和客户端的关系图
整体的数据流转如下图,Sentinel客户端启动后注册到控制台,控制台配置相应的流控规则,并保存到Nacos,Sentinel客户端从Nacos读取配置的限流规则,从而根据规则对自身服务进行限流。
从上图可以看到,涉及到地方主要有三块:
一:保存规则的地方(Nacos,还有很多其他的组件);
二:配置规则的地方(Sentinel控制台,官方有提供对应的jar包和源码);
三:实际的服务(从系统框架图知道,可以是Gateway,也可以是实际的微服务)集成sentinel
3、在项目中整合Sentinel具体要做的事情
1、需要安装和配置Nacos
2、改造Sentinel控制台
2.1、官网下载Sentinel-dashboard源码
2.2、流控规则持久化到Nacos(官方源码,规则是保存在内存里面,重启服务就会导致规则丢失)
2.3、修改控制台页面Controller接口中的逻辑(各个规则的增删改查接口,将内存的操作,全部修改为到Nacos)
2.4、打成jar包后部署到服务器
3、Sentinel客户端整合(这里可以选择整合到网关或者是实际的微服务)
3.1、项目中引入Sentinel相关pom依赖
3.2、增加相应的代码配置
3.3、Sentinel控制台和Nacos相关配置
后面的文章会涉及详细的过程,包括改造Sentinel控制台、网关整合Sentinel、微服务整合Sentinel