sentinel dashboard分布式改造设计&实现

1. 背景

微服务是目前java主流架构,微服务架构技术栈有,服务注册中心,网关,熔断限流,服务通讯,配置中心等组件,其中,熔断限流主要3个功能特性,限流,熔断,快速失败。

熔断限流的sentinel dashboard是演示级别,表现在metrics采集是单机版,metrics存储在内存,不支持分布式,高可用,因此需要改造

2. 参考和术语

限流 控制调入流量,防止流量过大造成系统崩溃

熔断/快速失败 断路有延迟的服务,防止雪崩效应;断路探测,恢复服务路由

3. sentinel简介

sentinel的介绍没有比官方的原理图更清楚了,总体看,sentinel是责任链,分两部分,前部分是请求处理的拓扑构建和数据统计,后部分是规则+数据得出结论,是否放行

下图是sentinel代码结构图

core 核心代码,slot链,即上原理图的责任链;

node, 统计数据结构

adapter 适配器,植入sentinel的逻辑

spring 集成spring,支持aop植入sentinel的逻辑;spring boot支持放在spring cloud Alibaba

transport 嵌入的web服务,使用命令模式

dashboard 仪表盘/管理台,采集并展示metrics,更新规则

rule-datasource 规则存储数据源

4. 场景视图

改造的模块有3个,服务注册,metrics采集,metrics持久

5. dashboard与transport原理与源码分析

dashboard和transport是重构目标,需要了解其原理,找出技术方案

dashboard 传统的spring mvc/servlet应用

transport transport是一个嵌入式的web服务,总体架构server->分发->命令处理;另外还有心跳功能

Metricfetcher metrics采集,单点多线程

SentinelApiClient 封装dashboard与服务(sentinel client)的交换,有很好的扩展性,很容易就实现新CommandHandler

6. elastic-job原理

重构使用elasitc-job分布式调度,这里介绍其技术原理

elastic-job可以看作是分布式quartz,单个作业节点使用quartz调起,作业集群使用zookeeper协调

改造关联运行实例服务监听服务分片服务,依赖znode存储

Ø 运行实例服务 注册服务为sentinel client实例,注意区别,不是作业运行实例

Ø 监听服务 监听实例下线,设置需要分片标记

Ø 分片服务 重写分片服务,获取sentinel client实例作为分片item

这里不详述,可参考elastic-job的源码原理分析文章

分布式调度引擎 elastic-job3 源码分析 (四) 核心服务 I_szlhj的博客-CSDN博客

7. 技术架构

改造后的技术架构

Ø metrics fetcher分拆出来,成为独立服务

transport 保留原有metrics采集机制

elasticjob 集成elasticjob,实现分布式分片采集

持久/输出 metrics存储或输出,支持elasticsearch/Prometheus

Ø dashboard保留原有metric展示,rule库

Ø 服务增加实例服务,用于注册到zookeeper

8. 弹性资源

随着弹性资源平台的完成,集成到弹性资源,提供高弹性伸缩

看弹性资源组件的设计参看:https://blog.csdn.net/szlhj/category_12446958.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Sentinel-dashboard1.8是针对阿里云分布式应用的运维、管理平台,能够提供大规模分布式系统的实时监控、异常报警、流量控制等多种功能,并通过可视化操作界面方便用户使用。而其中的zook则是其内置的zookeeper管理工具,用于查看和管理zookeeper服务的状态信息。 在使用Sentinel-dashboard1.8时,用户只需通过配置相关参数,即可将需要监控的应用加入到监控系统中。此时,用户可以实时地查看应用的运行状态,如CPU、内存、磁盘、网络等指标的实时数据,及时发现并解决问题,避免由于系统故障带来的损失。 同时,Sentinel-dashboard1.8还支持对系统异常进行监控,当出现问题时可以及时地进行报警通知,提醒相关人员进行处理。此外,Sentinel-dashboard1.8还提供了流量控制的功能,通过设置相关参数,可以对应用的流量进行限制,从而保证系统的稳定性和可靠性。 总之,Sentinel-dashboard1.8是一款功能强大的分布式应用监控工具,对于提升系统可靠性和运维效率具有重要意义,而zook作为其中的一个重要模块,提供了对zookeeper服务的实时监控和管理,使用户能够更加方便和高效地管理分布式系统中的关键服务。 ### 回答2: Sentinel-dashboard1.8 是一个面向微服务应用的高可用性流量控制和熔断保护平台。它能够对应用程序的流量进行实时监控,并能够快速响应流量突加和异常情况。 Sentinel-dashboard1.8 使用了 ZooKeeper 作为它的注册中心,通过与 ZooKeeper 的交互,它可以动态地更新应用程序的配置信息和运行状态。ZooKeeper 是一个基于固定的节点结构的分布式协调系统,它能够在一个大规模的集群中协调和管理节点之间的通信和数据流动,因此很适合作为 Sentinel-dashboard1.8 的注册中心。 Sentinel-dashboard1.8 的基于规则的流量控制和熔断保护机制,可以为应用程序提供精细的流量管理和调节方式。它具备了灵活的请求过滤和流量分组的功能,能够高效地处理大量请求,让应用程序保持高可用性和性能稳定性。 总之,Sentinel-dashboard1.8 是一个非常实用的微服务应用流量控制和熔断保护平台,并且和 ZooKeeper 作为注册中心的组合也非常优秀。它的使用可以为应用程序提供更加可靠和高效的流量管理和控制方式。 ### 回答3: Sentinel-dashboard1.8 zook是一个开源的分布式系统监控工具,提供了实时的监测和预警,可以帮助用户快速发现系统中的问题,提高系统的稳定性和可靠性。 Sentinel-dashboard1.8 zook具备一个可扩展的结构,可以方便地扩展和自定义监控指标,支持高效的集群管理,可以通过接口实现对监控数据的查询和管理。 Sentinel-dashboard1.8 zook的核心特点包括:实时监控、流量控制、规则引擎、多语言支持、容错、弹性扩展、可扩展性和易于使用等功能。它能够在分布式系统中监控HTTP、RPC、Dubbo等常见的通信协议,可以识别通信中的异常和错误,并实时生成报警信息,提醒用户及时处理。 总之,Sentinel-dashboard1.8 zook是一款高性能、可扩展的分布式系统监控工具,可以帮助用户快速发现并解决系统中存在的问题,保证系统的稳定性和可靠性,提高运维效率。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

中间件XL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值