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

本文涉及的产品
云原生网关 MSE Higress,422元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: MSE ZooKeeper 最新提供 Dubbo 服务管理能力,同时结合 TopN 监控大盘,推送轨迹等自治能力,帮助用户提高问题排查速度,集群运维效率。

背景


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实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
2月前
|
安全 应用服务中间件 API
微服务分布式系统架构之zookeeper与dubbo-2
微服务分布式系统架构之zookeeper与dubbo-2
|
1月前
|
存储 负载均衡 监控
dubbo学习一:zookeeper与dubbo的关系,下载安装启动zookeeper(解决启动中报错)
这篇文章是关于Apache Dubbo框架与Zookeeper的关系,以及如何下载、安装和启动Zookeeper的教程,包括解决启动过程中可能遇到的报错问题。
51 3
dubbo学习一:zookeeper与dubbo的关系,下载安装启动zookeeper(解决启动中报错)
|
23天前
|
Dubbo 应用服务中间件 Apache
Dubbo 应用切换 ZooKeeper 注册中心实例,流量无损迁移
如果 Dubbo 应用使用 ZooKeeper 作为注册中心,现在需要切换到新的 ZooKeeper 实例,如何做到流量无损?
17 4
|
1月前
|
监控 Dubbo Java
dubbo学习三:springboot整合dubbo+zookeeper,并使用dubbo管理界面监控服务是否注册到zookeeper上。
这篇文章详细介绍了如何将Spring Boot与Dubbo和Zookeeper整合,并通过Dubbo管理界面监控服务注册情况。
80 0
dubbo学习三:springboot整合dubbo+zookeeper,并使用dubbo管理界面监控服务是否注册到zookeeper上。
|
5月前
|
缓存 NoSQL 数据库
分布式系统面试全集通第一篇(dubbo+redis+zookeeper----分布式+CAP+BASE+分布式事务+分布式锁)
分布式系统面试全集通第一篇(dubbo+redis+zookeeper----分布式+CAP+BASE+分布式事务+分布式锁)
105 0
|
6月前
|
Dubbo Java 应用服务中间件
微服务学习 | Springboot整合Dubbo+Nacos实现RPC调用
微服务学习 | Springboot整合Dubbo+Nacos实现RPC调用
|
29天前
|
Dubbo Java 应用服务中间件
Spring Cloud Dubbo:微服务通信的高效解决方案
【10月更文挑战第15天】随着信息技术的发展,微服务架构成为企业应用开发的主流。Spring Cloud Dubbo结合了Dubbo的高性能RPC和Spring Cloud的生态系统,提供高效、稳定的微服务通信解决方案。它支持多种通信协议,具备服务注册与发现、负载均衡及容错机制,简化了服务调用的复杂性,使开发者能更专注于业务逻辑的实现。
53 2
|
3月前
|
Dubbo Java 应用服务中间件
💥Spring Cloud Dubbo火爆来袭!微服务通信的终极利器,你知道它有多强大吗?🔥
【8月更文挑战第29天】随着信息技术的发展,微服务架构成为企业应用开发的主流模式,而高效的微服务通信至关重要。Spring Cloud Dubbo通过整合Dubbo与Spring Cloud的优势,提供高性能RPC通信及丰富的生态支持,包括服务注册与发现、负载均衡和容错机制等,简化了服务调用管理并支持多种通信协议,提升了系统的可伸缩性和稳定性,成为微服务通信领域的优选方案。开发者仅需关注业务逻辑,而无需过多关心底层通信细节,使得Spring Cloud Dubbo在未来微服务开发中将更加受到青睐。
85 0
|
1月前
|
Dubbo Java 应用服务中间件
Dubbo学习圣经:从入门到精通 Dubbo3.0 + SpringCloud Alibaba 微服务基础框架
尼恩团队的15大技术圣经,旨在帮助开发者系统化、体系化地掌握核心技术,提升技术实力,从而在面试和工作中脱颖而出。本文介绍了如何使用Dubbo3.0与Spring Cloud Gateway进行整合,解决传统Dubbo架构缺乏HTTP入口的问题,实现高性能的微服务网关。
|
2月前
|
Dubbo 应用服务中间件 Apache
Star 4w+,Apache Dubbo 3.3 全新发布,Triple X 领衔,开启微服务通信新时代
在 Apache Dubbo 突破 4w Star 之际,Apache Dubbo 团队正式宣布,Dubbo 3.3 正式发布!作为全球领先的开源微服务框架,Dubbo 一直致力于为开发者提供高性能、可扩展且灵活的分布式服务解决方案。此次发布的 Dubbo 3.3,通过 Triple X 的全新升级,突破了以往局限,实现了对南北向与东西向流量的全面支持,并提升了对云原生架构的友好性。
139 8

相关产品

  • 微服务引擎