作者简介:小明java问道之路,2022年度博客之星全国TOP3,专注于后端、中间件、计算机底层、架构设计演进与稳定性建设优化,文章内容兼具广度、深度、大厂技术方案,对待技术喜欢推理加验证,就职于知名金融公司后端高级工程师。
热衷分享,喜欢原创~ 关注我会给你带来一些不一样的认知和成长。
2022博客之星TOP3 | CSDN博客专家 | 后端领域优质创作者 | CSDN内容合伙人
InfoQ(极客邦)签约作者、阿里云专家 | 签约博主、51CTO专家 | TOP红人、华为云享专家
如果此文还不错的话,还请关注、点赞、收藏三连支持一下博主~
文末获取联系 精彩专栏推荐订阅收藏
专栏系列(点击解锁)
学习路线(点击解锁)
知识定位
Redis从入门到精通与实战
Redis从入门到精通与实战
围绕原理源码讲解Redis面试知识点与实战
MySQL从入门到精通
MySQL从入门到精通
全面讲解MySQL知识与企业级MySQL实战 计算机底层原理
深入理解计算机系统CSAPP
以深入理解计算机系统为基石,构件计算机体系和计算机思维
Linux内核源码解析
围绕Linux内核讲解计算机底层原理与并发
数据结构与企业题库精讲
数据结构与企业题库精讲
结合工作经验深入浅出,适合各层次,笔试面试算法题精讲
互联网架构分析与实战
企业系统架构分析实践与落地
行业最前沿视角,专注于技术架构升级路线、架构实践
互联网企业防资损实践
互联网金融公司的防资损方法论、代码与实践
Java全栈白宝书
精通Java8与函数式编程
本专栏以实战为基础,逐步深入Java8以及未来的编程模式
深入理解JVM
详细介绍内存区域、字节码、方法底层,类加载和GC等知识
深入理解高并发编程
深入Liunx内核、汇编、C++全方位理解并发编程
Spring源码分析
Spring核心七IOC/AOP等源码分析
MyBatis源码分析
MyBatis核心源码分析
Java核心技术
只讲Java核心技术
本文目录
本文导读
一、Dubbo注册中心概述
二、Dubbo注册中心工作流程
总结
本章首先介绍整个DUBBO注册中心的总体工作流程,其次讲解不同类型注册中心的数据结构和实现原理。通过本章的学习,读者可以理解Dubbo各种注册中心的基本原理,方便后续快速理解并扩展注册中心。
在Dubbo微服务系统中,注册中心(Zookeeper、Redis等等)是其核心组成部分之一。Dubbo通过注册中心实现分布式环境中服务之间的注册和发现,作为分布式节点之间的链接。其主要功能如下:
动态添加:服务提供者通过注册中心向其他使用者动态公开自己,而不需要使用者逐个更新其配置文件。
动态发现:消费者可以动态感知新的配置、路由规则和新的服务提供者,而无需重新启动服务即可生效。
动态调整:注册中心支持参数的动态调整,新参数自动更新到所有相关服务节点。
统一配置:避免了本地配置,导致每个服务配置不一致的问题。
从 dubbo-registry 模块可以看出,Dubbo支持很多种注册方式,主要包括四种类型的注册中心实现,即ZooKeeper、Redis。
其中,ZooKeeper是官方推荐的注册中心,具体实现是在 dubbo-registry-zookeeper 模块中。阿里内部没有使用Redis作为注册中心,Redis注册中心其稳定性取决于Redis本身。
第1步、当服务提供者 Provider 启动时,它会将自己的元数据信息写入注册中心 Registry 并订阅配置元数据信息。
第2步、当消费者 Consumer 启动时,他们还将自己的元数据信息写入注册中心 Registry ,并订阅服务提供者Provider 、路由和配置元数据信息。
第3步、当服务治理中心(dubbo-admin)启动时,它将同时订阅所有消费者、服务提供者、路由和配置元数据信息。
第4步、当服务提供者离开或新的服务提供者加入时,注册中心服务提供者目录将更改信息的更改将动态通知消费者和服务管理中心。
第5步、当消费方发起服务调用时,会将调用、统计信息等异步报告给监控中心(dubbo-monitor simple)。
Registry 只是 Consumer 消费者和 Provider 提供者感知变化的一种方式,他们的实际沟通是直接的。如果 Provider 状态发生更改,会由 Registry 主动推送订阅了该 Provider 的所有 Consumer。这确保了Consumer 感知 Provider 状态变化的及时性,并且和业务需求解耦,提高了系统稳定性。
本章首先介绍整个DUBBO注册中心的总体工作流程,其次讲解不同类型注册中心的数据结构和实现原理。通过本章的学习,读者可以理解Dubbo各种注册中心的基本原理,方便后续快速理解并扩展注册中心。