简介
HASentinel是基于阿里Sentinel做的高可用、高可扩展改造的项目,主要改造点:
将配置改造为存储到Zookeeper中;
将应用上报的Metrics持久化存储到Influxdb集群中;
Metrics由Sentinel控制台主动获取,修改为由应用端主动上报;
优化Sentinel控制台的操作,将原来只能够针对应用的各个节点的配置操作,优化为针对应用本身的配置操作,然后应用到应用集群的所有节点;
增加Grafana做为报表展示,支持展示长时间的Metrics报表,并增加支持自动Influxdb集群数据路由的中间层ShardingInfluxdb;
架构图
设计原则
高可用
高可扩展
高性能
支持高并发
重点的改造应用为Sentinel控制台,需要将Metric获取方式由主动拉取修改为被动接收、Metric存储方式由内存修改为Influxdb、配置存储由内存修改为ZK等等;Sentinel客户端包也需要做对应的改造,增加主动推送Metric到控制台、主动接收ZK配置的推送等;为了能够以任意时间纬度查看Metric报表,需要引入Grafana做为报表查看,同时需要解决Influxdb中Metric分库查询及合并查询的问题等等。
源码:https://gitee.com/laofeng/hasentinel