改造Sentinel-dashboard源码

本文详细描述了如何对Sentinel-dashboard源码进行改造,将规则存储从内存迁移到Nacos,包括普通流控规则和网关流控规则的修改,以及配置文件和API接口的调整,提供完整的修改源码供读者参考。
摘要由CSDN通过智能技术生成

本文主要是对sentinel-dashboard源码进行改造,分为两块,一块是普通流控规则的改造,一个是网关流控规则的改造,完整的修改过的源码见文章最后源码下载,可以直接使用,修改Nacos配置就可以。

1、官网源码的下载
由于sentinel-dashboard的原始jar包,数据是存储在内存中,服务重启会导致配置的规则丢失,所以面临的第一个问题就是,需要将数据的保存逻辑,从保存到内存修改到保存到其他的数据源,这里选用的是nacos。

如下图,选择对应的版本,本文是1.8.4的版本,官方下载地址

如上sentinel-dashboard-1.8.4.jar是可执行jar包,但是我们需要下载其源码,也就是Source code去修改规则的保存逻辑。

由于sentinel的客户端选用的版本是1.8.0,所以最开始的控制台版本也选用了1.8.0的版本,但是1.8.0版本的控制台有bug,所以采用了1.8.4版本(其实控制台的各个版本区别不大,可以自行选用)

2、源码的改造
下载后的源码结构如下:

2.1 引入Nacos的相关依赖
去除pom文件中nacos存储相关依赖的test标签,目的是后续需要从nacos存取数据,可以看到其实数据源也可以选择Apollo和Zookeeper。

com.alibaba.csp sentinel-datasource-nacos com.ctrip.framework.apollo apollo-openapi 1.2.0 test org.apache.curator curator-recipes ${curator.version} test 2.2 普通流控规则相关的改造 1、在rule文件夹下,新增一个nacos文件夹,按权限、降级、限流、热点参数限、系统五个配置规则分开,另外增加了NacosConfig、NacosConfigUtil和JSONUtils两个工具类

2、然后修改对应的控制界面的controller接口,这边涉及到5个controller接口,截图如下:

2.3 网关流控规则相关的改造(需要集成到网关上才需要修改这一块)
1、增加网关流控和API管理在nacos的存取操作类

2、修改原有的网关流控和API管理的Controller接口,修改其添加、查询、修改和删除接口,将保存到内存操作修改为保存到nacos

2.4 给出修改逻辑和位置
1、例如查询接口,之前的逻辑是从内存中获取,现在的逻辑是从nacos查询

2、例如保存接口,之前的逻辑是保存在内存中,现在是保存都nacos中

3、其他的规则的接口也是同理修改,修改过的完整的源码见文章结尾

2.5 在application.properties配置文件中增加nacos的配置
这里填写nacos的ip和端口,还需要在nacos上新增一个命名空间,这个命名空间后续专门存放sentinel的规则,此处的命名空间要和后面集成Sentinel客户端配置相同,不然读取不到流控规则

#nacos的集群地址
nacos.address=xxxxx:8848
#二选一public为空,namespeace为uuid,这里与dubbo服务一致
#nacos.namespace=
nacos.namespace=6db12247-153b-4d0c-bef6-5c7c5e48faa3
3、修改后的完整源码下载
Sentinel-1.8.4

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
sentinel-dashboard-1.8.2是一个开源的项目,用于监控和管理Sentinel的规则、实时流量、集群节点等信息。它是一个基于Java开发的Web应用程序,采用了Spring Boot框架和Vue.js前端框架。 首先,sentinel-dashboard-1.8.2源码的结构非常清晰和模块化。它分为后端和前端两部分,后端代码位于sentinel-dashboard模块,前端代码位于sentinel-dashboard-frontend模块。这种结构使得代码的维护和扩展变得更加容易。 在后端部分,sentinel-dashboard-1.8.2源码中包含了一系列的Java类,用于实现Sentinel的规则管理、实时数据统计和集群节点的管理等功能。它提供了RESTful的接口用于前端页面的数据获取和交互。这些Java类使用了Spring框架提供的注解和特性,使得代码简洁、易读和易于维护。 在前端部分,sentinel-dashboard-1.8.2源码中的前端代码采用了Vue.js框架进行开发。它使用了一系列的组件来实现不同的功能模块,如规则管理、流量统计、集群节点管理等。前端页面具有良好的交互性和可视化效果,可以方便地进行规则的配置和流量的监控。 另外,sentinel-dashboard-1.8.2源码还使用了一些开源的技术和库,如Redis、MyBatis等,以提供更好的性能和扩展性。 总结来说,sentinel-dashboard-1.8.2源码是一个功能丰富、结构清晰和易于维护的开源项目。通过深入研究和理解源码,开发人员可以对Sentinel的规则管理和流量监控等核心功能有更深入的了解,并根据自己的需求进行二次开发和定制化操作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值