Dubbo + ZooKeeper丨如何解决线上故障排查链路长的难题

本文涉及的产品
应用实时监控服务-用户体验监控,每月100OCU免费额度
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: Dubbo + ZooKeeper丨如何解决线上故障排查链路长的难题

作者:子葵


背景


ZooKeeper 作为通用的元数据存储组件,用途广泛,是 Dubbo 最早支持的注册中心之一,经过长时间的磨合,目前 Dubbo 和 ZooKeeper 的组合具有很好的稳定性和扩展性。


ZooKeeper 作为 Dubbo 注册中心时,由于开源 ZooKeeper 没有提供服务注册的逻辑模型,因此对 Dubbo 服务的管理成本比较高,存在问题排查链路长等一系列治理问题。针对这些问题,MSE ZooKeeper 最新提供 Dubbo 服务管理能力,同时结合 TopN 监控大盘,推送轨迹等自治能力,帮助用户提高问题排查速度,集群运维效率。


服务管理


通过实例详情页中的数据管理中的服务管理来查看 ZooKeeper 中注册的服务,以及服务的提供者,订阅者信息。服务详情页展示对应的服务名以及服务类型,目前只支持 Dubbo,未来还会支持更多的服务注册类型,单击服务名进入服务详情页面。

image.png

服务详情页面展示了,服务的元信息,包含服务的版本,分组,应用名等信息,支持多个分组,版本展示。服务提供者信息通过更加合理的表格结构化展示,并且可以实时看到实例的上下线,权重,超时时间等信息,能够更加清晰的掌握应用的配置信息。

image.png

如果您想对 Dubbo 服务进行精细化的治理,可以将您的 Dubbo 服务接入 MSE 微服务治理。在接入服务治理的情况下,您可以通过点击接口详情按钮来跳转到微服务治理对应的页面,查看您的 Dubbo 服务的详细数据信息,包含服务的 QPS、延时、成功率、并发等信息。

image.png

如果您的 Dubbo 应用遇到了一些线上问题,需要在保留现场的场景下进行问题定位。您可以在跳转后的微服务治理对应的界面中找到节点详情菜单。选择出现问题的实例,通过右侧的服务下线按钮进行下线操作。这样就可以将出问题实例的流量摘除掉,在既保留现场又不影响业务的情况下进行问题定位。

image.png

结合 MSE 服务治理能力,能够轻松实现服务的无损伤上下线,灰度发布,使得发布过程中更加平滑,风险降低。同时结合推送轨迹功能方便查询服务提供者的上下线记录,能够协助排查注册不上,重复注册,服务下线但是注册中心中数据未删除,频繁变更等场景。

image.png

同时通过查询订阅者的推送轨迹我们直观看到每次服务上下线被推送的客户端情况。

image.png

同时 MSE ZooKeeper 增强了稳定性,对于异常的注册场景,Server 提供防护能力,防止因为业务侧异常导致服务宕机。


例如,某用户由于代码缺陷导致 Dubbo Service Refrence 泄漏,ZooKeeper 中存在大量泄露的 Reference 创建的临时节点,并且由于 ZooKeeper 同步机制中的限制(可参考ZooKeeper 避坑指南,jute.maxbuffer 的设置文章),导致服务宕机,MSE ZooKeeper 针对这种极端情况做了 Server 侧的自我保护,在 Reference 泄漏的情况下会限制业务注册的无用的数据,保证 Server 的稳定性。


问题排查


对于极端情况下问题的排查,MSE ZooKeeper 提供丰富的 TopN 大盘,结合上述的推送轨迹能力,能够帮助用户快速找到问题源头。例如在 Dubbo Service Refrence 这种场景下,我们首先可以根据 TopN 大盘中的 Session Tps TopN 确定泄漏的 refrence 是由哪一个客户端产生的。

image.png

之后我们通过此客户端的 SessionId,在推送轨迹中查询对应的变更记录,并通过变更记录找到问题的原因。

image.png

从推送轨迹中我们可以看到异常 session 创建的所有的 path,从 path 中包含的信息可以快速溯源到源客户端,从而找到问题原因。


欢迎感兴趣的同学扫描下方二维码加入钉钉交流群,一起参与探讨交流。

image.png

MSE 3月采购季优惠


【0元试用】

服务治理试用版,开通后 15 天免费使用。

【新老同享】

服务治理资源包:专业版/(7200Agent*小时)67.5 元。

注册配置中心资源包:开发版/规格1c2g 76.7 元。

【首购专享】

注册配置中心专业版,引擎类型 Nacos,包年包月 6 折。

注册配置中心专业版,引擎类型 ZooKeeper,包年包月 5 折。

云原生网关,包年包月 6 折。

服务治理资源包(按量抵扣),包年包月 6 折。

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
8月前
|
监控 Dubbo 前端开发
快速入门分布式系统与Dubbo+zookeeper Demo
快速入门分布式系统与Dubbo+zookeeper Demo
488 0
|
Dubbo 应用服务中间件 开发工具
以zookeeper作为注册中心的分布式服务框架dubbo的部署安装
以zookeeper作为注册中心的分布式服务框架dubbo的部署安装
|
4月前
|
安全 应用服务中间件 API
微服务分布式系统架构之zookeeper与dubbo-2
微服务分布式系统架构之zookeeper与dubbo-2
|
3月前
|
存储 负载均衡 监控
dubbo学习一:zookeeper与dubbo的关系,下载安装启动zookeeper(解决启动中报错)
这篇文章是关于Apache Dubbo框架与Zookeeper的关系,以及如何下载、安装和启动Zookeeper的教程,包括解决启动过程中可能遇到的报错问题。
113 3
dubbo学习一:zookeeper与dubbo的关系,下载安装启动zookeeper(解决启动中报错)
|
3月前
|
Dubbo 应用服务中间件 Apache
Dubbo 应用切换 ZooKeeper 注册中心实例,流量无损迁移
如果 Dubbo 应用使用 ZooKeeper 作为注册中心,现在需要切换到新的 ZooKeeper 实例,如何做到流量无损?
38 4
|
3月前
|
监控 Dubbo Java
dubbo学习三:springboot整合dubbo+zookeeper,并使用dubbo管理界面监控服务是否注册到zookeeper上。
这篇文章详细介绍了如何将Spring Boot与Dubbo和Zookeeper整合,并通过Dubbo管理界面监控服务注册情况。
195 0
dubbo学习三:springboot整合dubbo+zookeeper,并使用dubbo管理界面监控服务是否注册到zookeeper上。
|
7月前
|
NoSQL Dubbo 应用服务中间件
Dubbo Zookeeper(一)Zookeeper初识
Dubbo Zookeeper(一)Zookeeper初识
|
7月前
|
缓存 NoSQL 数据库
分布式系统面试全集通第一篇(dubbo+redis+zookeeper----分布式+CAP+BASE+分布式事务+分布式锁)
分布式系统面试全集通第一篇(dubbo+redis+zookeeper----分布式+CAP+BASE+分布式事务+分布式锁)
116 0
|
8月前
|
Dubbo Java 应用服务中间件
Spring Boot整合Dubbo+Zookeeper实现RPC调用
Spring Boot整合Dubbo+Zookeeper实现RPC调用 技术栈说明 Dubbo:Dubbo作为RPC框架,能在多个服务之间实现远程服务的调用。比如有两个独立的微服务A和B,A服务想要调用B服务时,因为两者不在同个内存空间中,不能直接调用,所以可以通过Dubbo实现这点。 功能和Spring Cloud的Feign相同,两者都是应用于微服务架构的远程调用框架 Zookeeper:作为注册中心去管理Dubbo服务,这点和Eureka、Nacos相同。 概述 通过一个示例说明Dubbo+Zookeeper在Spring Boot中的应用。 现有两个服务provider和con
200 4
|
Dubbo Java 应用服务中间件
springboot + dubbo + zookeeper入门到实战超级详解
springboot + dubbo + zookeeper入门到实战超级详解
236 0

相关产品

  • 微服务引擎