sentinel dashboard分布式改造落地设计实现解释(二)-分布式discovery组件

news2024/10/22 17:28:14

discovery

discovery负责维护app/机器资料库,transport健康检测, transport上下线处理。discovery关键是分布式存储,后续研究一下raft,其复制,状态机,快照技术,但个人觉得,discovery功能只是作为目录,提供app/resource,支持搜索和规则更改,不需要太严谨和高效的技术保障。

上图discovery涉及的znode,discovery监听transport的实例(item)的上下线,维护app/机器,删除对应分片。

app/机器资料库

       discovery负责构建app/机器资料库和健康检查,用于查询metrics,规则发布,原discovery组件通过心跳登记app/机器实例,更新lastHeartbeatTime, 检查lastHeartbeatTime判断机器是否监控。改造后,心跳实现基于zookeeper的watcher方式,通过监控znode获得上下线通知, 增加或移除machine。

上图基于zookeeper的discovery实现

上图zookeeper discovery初始化 

  • refreshAppAndMachine

刷新app/机器资料,读取/transport/instances的子节点,获取node data,dataMachineInfo序列号,反序列化获得MachineInfo对象,更新AppManagement

  • UpAndDownTransportListenerManager

监听管理器负责设置和启动监听器,包括zookeeper连接状态监听,tranport上线和下线3个监听器

transport上线下线

transport实例下线或撤下,相应的机器和分片需要增加或删除

transport上线

transport上线,增加机器对象

transport下线

transport下线,做两件事,移除机器对象,删除对应的分片

删除对应分片,首先成为主节点,主节点负责删除

选主涉及到上图两个节点

选为使用latch,选为主节点,写入自身的实例id到instance znode,即ip:port,选主服务凭此判断是否自身节点选上(实例Id相同),选主是否已完成

Zookeeper重连

Zookeeper连接断开重连后,需要对app/机器资料库校对,实际调用refreshAppAndMachine

NEXT

弹性资源

目前版本分布式调度资源预先启动worker,需要对服务数量评估,启动相适应worker实例数,下一版本集成弹性资源组件,根据服务数(实际是transport数量),动态申请资源

上图集成弹性资源的技术架构图

  1. dashboard监控分片数量,也是transport登记数量,根据数量按一定策略申请/注销fetcher资源
  2. fetcher主节点监控fetcher实例,每次调度根据当前的fetcher分配分片

 app/机器资料库

改造后每个dashboard的app/机器资料库是全量的,服务实例数多,性能和资源影响大,特别是dashboard上下线。

至此,sentinel dashboard分布式改造实现解释完成,后面继续sentinel原理源码分析

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2213533.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件分享 | 截图工具 Snipaste

今天分享: 今日分享的是一款截图界的神器——Snipaste! 特点: 🎨 超清截图: Snipaste的截图功能,清晰度超乎你的想象。无论是工作文档还是游戏画面,都能一键捕捉,细节尽在掌握。 …

Excel:将一列拆分成多列

实现的效果是: 操作步骤如下: 1.选中列 → 点击菜单栏中的"数据" → 分列 2.选择"分列符号",点击下一步 3.我想要按照空格分列,就选择空格 4.点击完成,就可以实现分列的效果了

uniapp学习(004-2 组件 Part.2生命周期)

零基础入门uniapp Vue3组合式API版本到咸虾米壁纸项目实战,开发打包微信小程序、抖音小程序、H5、安卓APP客户端等 总时长 23:40:00 共116P 此文章包含第31p-第p35的内容 文章目录 组件生命周期我们主要使用的三种生命周期setup(创建组件时执行)不可以操作dom节点…

Shell编程-if判断

作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。 我们前面学习了那么多命令,以及涉及到部分逻辑判断的问题。从简单来说,他就是Shell编…

【XYFrame unity框架使用文档】封装unity小框架工具集 —— XYFrame

文章目录 XYFrame介绍优点获取框架源码引入的第三方插件作者信息技术交流群反馈企鹅裙画饼使用文档导入文件目录启动1、单例模式不继承MonoBehaviour的单例模式基类继承MonoBehaviour的单例模式基类 2、Mono管理器3、事件管理系统4、工具类封装unity协程工具,避免 G…

每周心赏|必备AI神器第二弹

大家的假期都是怎么度过的?是已经玩嗨了?还是在家葛优躺,感叹时间飞逝呢? 别急,假期还没完全说拜拜呢!赶紧抓住假期最后的尾巴,和AI神器一起,把快乐放大,不留遗憾&#x…

prompt learning

prompt learning 对于CLIP(如上图所示)而言,对其prompt构造的更改就是在zero shot应用到下游任务的时候对其输入的label text进行一定的更改,比如将“A photo of a{obj}”改为“[V1][V2]…[Vn][Class]”这样可学习的V1-Vn的token…

Docker配置网站环境

Mysql 先安装mysql 启动并后台运行:run -d 容器名称:--name 设置端口映射:-p 主机端口:容器端口 环境变量:-e 最后指定镜像名称 sudo docker run -d \--name mysql\-p 3306:3306\-e MYSQL_ROOT_PASSWORD123456\…

Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.0 SP1升级到SP3操作方法(x64)

1、首先安装时候选择升级SQLEXPRADV_x64_CHS.exe。 2、接着安装SQLServer2008R2SP1-KB2528583-x64-sp1补丁后10.50.2500.0。 3、接着安装升级SQLEXPRWT_x64_CHS.exe。 4、继续安装SP3:SQLServer2008R2SP3-KB2979597-x64-CHS。 5、最后安装SP3补丁:SQ…

ARM64使能kdump

摘要 需要使用的工具或者配置如下: 使用kdump-defconfig编译后的kdump内核 : https://download.csdn.net/download/weixin_43412488/89886775https://download.csdn.net/download/weixin_43412488/89886775 引导kdump内核加载的ramdisk: https://download.csdn.net/dow…

【通知】红帽认证:RHCE免费补考福利来袭!

现有2024年第四季度红帽RHCE培训补考政策的通知: 为促进红帽第四季度(10月~12月)RHCE的招生及交付,红帽推出免费补考政策如下: 在此期间参加RHCE(EX200/EX294)考试,且考试订单在有效期内,考试如有未能通过的科目&…

移动技术开发:备忘录

1 实验名称 备忘录 2 实验目的 掌握SQLite数据库的基本操作&#xff0c;实现备忘录基本功能。 3 实验源代码 布局文件代码&#xff1a; &#xff08;1&#xff09;activity_main.xml <?xml version"1.0" encoding"utf-8"?> <LinearLayout …

在IMX6ul中,使用GPT定时器实现高精度延时

在上一节讲解过了。IMX6UL中的EPIT定时器&#xff0c;这一节我们讲解通用寄存器 在STM32中&#xff0c;我们使用过SYSTICK来实现高精度的延时。IMX6U当中没有SYSTICK定时器&#xff0c;但是IMX6U有其他的定时器&#xff0c;前面的EPIT以及这一节我们将要使用的GPT定时器…

算法备案必须做吗?不做有什么风险?

算法备案是一种强制性备案制度&#xff0c;旨在保障算法技术的合法性和合规性。 《互联网信息服务算法推荐管理规定》第二十四条明确规定应当在10个工作日内备案&#xff0c;发生变更的在10个工作日内完成变更&#xff0c;注销的在20个工作日内完成注销。 ​未履行备案的&…

共筑华芯|首届“SEMiBAY湾芯展”龙华区科技创新局助力华芯邦科技携第四代半导体芯星亮相湾区半导体产业生态博览会,诚邀您莅临参观指导

在深圳市政府指导和深圳市发展改革委支持下&#xff0c;深圳市半导体与集成电路产业联盟携手深圳市重大产业投资集团有限公司共同主办的首届“SEMiBAY湾芯展”——湾区半导体产业生态博览会&#xff0c;将于今年10月16日至18日盛大举行。 本次展会以“芯动未来&#xff0c;共创…

MYSQL8.0.24数据库登录时 报错 ERROR 1045 (28000) / MYSQL8.0.24数据库多次修改密码无效

文章目录 前提:失败方案一:修改密码失败方案二:失败方案三:最终解决方案:前提: 在没有使用电脑上的mysql一段时间之后,忘记了mysql的root账号密码。然后登录怎么登录都登录不上,在重置了密码之后。发现一直报这个错误 ERROR 1045 (28000) : Access denied for user ‘…

ChatTTS在Windows电脑的本地部署与远程生成音频详细实战指南

文章目录 前言1. 下载运行ChatTTS模型2. 安装Cpolar工具3. 实现公网访问4. 配置ChatTTS固定公网地址 前言 本篇文章主要介绍如何快速地在Windows系统电脑中本地部署ChatTTS开源文本转语音项目&#xff0c;并且我们还可以结合Cpolar内网穿透工具创建公网地址&#xff0c;随时随…

深入计算机语言之C++:类与对象(上)

&#x1f511;&#x1f511;博客主页&#xff1a;阿客不是客 &#x1f353;&#x1f353;系列专栏&#xff1a;从C语言到C语言的渐深学习 欢迎来到泊舟小课堂 &#x1f618;博客制作不易欢迎各位&#x1f44d;点赞⭐收藏➕关注 前面我们学习了关于c语言的一些基础知识&#xff…

Go语言gRPC快速入门

文章目录 前言gRPC是什么Go语言的gRPC技术栈准备工作接口定义代码生成服务端代码编写客户端代码编写效果演示完整代码链接最后 前言 你好&#xff0c;我是醉墨居士&#xff0c;这篇博客想帮助初学者能够快速入门gRPC&#xff0c;希望能够为你节省宝贵的时间&#xff0c;让时间…

无线网络基础

文章目录 无线组网胖AP瘦AP胖瘦AP的区别组网方式连接方式CAPWAP概念 无线组网 WLAN&#xff1a;无线局域网 蜂窝网络&#xff1a;无线广域网 802.11&#xff0c;无线网络封装的报文头部 WLAN是一种基于IEEE 802.11标准的无线局域网技术 802.11标准聚焦在TCP/IP对等模型的下两层…