背景
微服务是目前java主流架构,微服务架构技术栈有,服务注册中心,网关,熔断限流,服务同学,配置中心等组件,其中,熔断限流主要3个功能特性,限流,熔断,快速失败。Sentinel是阿里开源的熔断限流组件,sentinel dashboard是演示级别,表现在metrics采集是单机版,metrics存储存在内存,不支持分布式,高可用,因此需要改造。
此前博文(sentinel dashboard分布式改造设计解释_sentinel-dashboard-CSDN博客),介绍分布式改造设计,本系列介绍落地的设计和实现解释
本文介绍改造第一部分,metrics拉取器的分布式改造,metrics存储和搜索elasticsearch实现,第二部分介绍discovery组件分布式改造, transport上下线监控和相关处理。
参考和术语
限流 控制调入流量,防止流量过大造成系统崩溃
熔断/快速失败 断路有延迟的服务,防止雪崩效应;断路探测,恢复服务路由
分布式服务组件 【分布式支撑平台 elastic-platform】-CSDN博客
Sentinel原理源码分析 https://blog.csdn.net/szlhj/category_11692531.html
分布式调度引擎 https://blog.csdn.net/szlhj/category_11460546.html
onesearch搜索引擎 https://blog.csdn.net/szlhj/category_11563011.html
sentinel dashboard分布式改造设计解释 sentinel dashboard分布式改造设计解释-CSDN博客
技术架构
改造后的技术架构
公用组件
AppManagement 收集机器与app资料,增加discovery zookeeper实现
metrics fetcher
- transport登记为分片,znode内容是app,ip,port
- transport心跳改为基于zk的passive实现
- 采集使用定时调度,包括分片,容错,实例服务,实例监听服务,分布式组件选举,主节点负责分配服务实例,监听fectcher实例变更
- metrics存储,onesearch
dashboard
查询metric,rule更新和发布,依赖discovery组件
分布式组件
改造使用分