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

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 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实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
6月前
|
Dubbo 应用服务中间件 开发工具
以zookeeper作为注册中心的分布式服务框架dubbo的部署安装
以zookeeper作为注册中心的分布式服务框架dubbo的部署安装
|
1月前
|
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
114 4
|
2月前
|
XML 资源调度 Dubbo
深度剖析dubbo和zookeeper关系
当网站规模达到了一定的量级的时候,普通的MVC框架已经不能满足我们的需求,于是分布式的服务框架和流动式的架构就凸显出来了。
17 0
|
3月前
|
Dubbo Java 应用服务中间件
Dubbo 3.x结合Zookeeper实现远程服务基本调用
ZooKeeper和Dubbo是两个在分布式系统中常用的开源框架,它们可以协同工作,提供服务注册与发现、分布式协调等功能。
|
3月前
|
Dubbo Java 应用服务中间件
微服务框架(七)Docker容器部署(Dubbo、Zookeeper、Dubbo-admin)
此系列文章将会描述Java框架**Spring Boot**、服务治理框架**Dubbo**、应用容器引擎**Docker**,及使用Spring Boot集成Dubbo、Mybatis等开源框架,其中穿插着Spring Boot中日志切面等技术的实现,然后通过gitlab-CI以持续集成为Docker镜像。   **本文为Docker容器部署,包括Dubbo微服务、Zookeeper、Dubbo-admin的部署**
微服务框架(七)Docker容器部署(Dubbo、Zookeeper、Dubbo-admin)
|
8月前
|
Dubbo Java 应用服务中间件
springboot + dubbo + zookeeper入门到实战超级详解
springboot + dubbo + zookeeper入门到实战超级详解
126 0
|
4月前
|
XML Dubbo Java
SpringBoot整合Dubbo和Zookeeper升级版
SpringBoot整合Dubbo和Zookeeper升级版
41 0
|
4月前
|
Dubbo Java 应用服务中间件
分布式应用简单入门及SpringBoot整合Dubbo+Zookeeper
分布式应用简单入门及SpringBoot整合Dubbo+Zookeeper
45 1
|
5月前
|
监控 Dubbo 应用服务中间件
启动Dubbo项目注册Zookeeper时提示zookeeper not connected异常原理解析
启动Dubbo项目注册Zookeeper时提示zookeeper not connected异常原理解析
241 0
|
9月前
|
Dubbo Java 应用服务中间件
dubbo 服务开发流程,运行流程?zookeeper 注册中心的作用?
dubbo 服务开发流程,运行流程?zookeeper 注册中心的作用?
67 0

相关产品

  • 微服务引擎