从 0 开始学微服务
胡忠想
微博技术专家
64643 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 43 讲
开篇词 (1讲)
结束语 (1讲)
从 0 开始学微服务
15
15
1.0x
00:00/00:00
登录|注册

12 | 如何将注册中心落地?

服务消费者订阅变更流程
服务消费者查询流程
服务提供者反注册流程
服务提供者注册流程
信息结构示意图
分组方式
服务信息内容
服务变更信息增量更新
批量反注册服务
并行订阅服务
多注册中心
工作流程
存储服务信息
交互关系
注册中心
服务消费者
服务提供者
思考题
实际项目实践中遇到的问题
注册中心落地实现
服务注册和发现的原理
注册中心如何落地?

该思维导图由 AI 生成,仅供参考

专栏第 5 期我给你讲了服务注册和发现的原理,这里面的核心是服务提供者、服务消费者和注册中心这三个概念,以及它们之间的交互关系。你可以先回顾一下这几个关键的知识点,如果有不清楚的地方,建议你先返回第 5 期复习一下,再开始今天的学习。
掌握了服务注册和发现的原理之后,我们就需要考虑如何把注册中心落地实现。结合前面所讲的服务注册与发现的流程,在落地注册中心的过程中,我们需要解决一系列的问题,包括如何存储服务信息、如何注册节点、如何反注册、如何查询节点信息以及如何订阅服务变更等。这些问题你都知道如何解决吗?如果还没答案,没关系,下面我来给你一一讲解。

注册中心如何存储服务信息

注册中心既然是用来存储服务信息的,那么服务信息都包含哪些内容呢?
根据我的实践经验,服务信息除了包含节点信息(IP 和端口号)以外,还包含其他一些信息,比如请求失败时重试的次数、请求结果是否压缩等信息。因此服务信息通常用 JSON 字符串来存储,包含多个字段,每个字段代表不同的含义。
除此之外,服务一般会分成多个不同的分组,每个分组的目的不同。一般来说有下面几种分组方式。
核心与非核心,从业务的核心程度来分。
机房,从机房的维度来分。
线上环境与测试环境,从业务场景维度来区分。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

注册中心在微服务架构中扮演着重要角色,本文深入介绍了注册中心的实际落地实现。首先,文章详细解释了注册中心存储服务信息的原理,包括服务信息的内容和存储结构。接着,对注册中心的工作流程进行了详细描述,包括服务提供者注册、反注册、服务消费者查询和订阅服务变更的实现方式。此外,文章还提到了实际项目中遇到的问题及解决方法。通过本文,读者可以快速了解注册中心的工作原理和实现方式,对于正在进行微服务架构设计和实施的技术人员具有一定的参考价值。 文章中列举了几个在注册中心实际使用过程中遇到的典型问题,包括多注册中心、并行订阅服务、批量反注册服务和服务变更信息增量更新。针对这些问题,作者给出了经过实际业务验证的解决方案,为大部分中小团队在应用场景面临的问题提供了应对之策。 总的来说,本文通过实际案例和解决方案,为读者提供了对注册中心工作原理和实现方式的深入了解,同时也为读者在实际应用中遇到的问题提供了解决思路。这些内容对于正在进行微服务架构设计和实施的技术人员具有重要的参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《从 0 开始学微服务》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(35)

  • 最新
  • 精选
  • geraltlaush
    注册中心的信息怎么实现增量更新,是通过版本号的方式吗

    作者回复: 对

    2018-10-05
    12
  • WL
    消费者订阅了服务的变更,当服务变更的时候,注册中心就可以把变更通知单消费者,那消费者为什么还需要定期去拉注册中心的数据呢?

    作者回复: 这里是为了讲述理论,实际实现时有两种方式,一种是zookeeper的推模式,一种是消费者定时拉去得模式

    2018-10-26
    10
  • 沙漠之鹰
    zk似乎能保证节点变更对订阅者的及时变更,这块批量反注册僵尸节点是针对哪个注册中心组件而言呢

    作者回复: 针对eureka这种ap方案

    2018-09-23
    1
  • 每天晒白牙
    老师,文中有”以前我们的业务中经常遇到这个问题,需要定时去清理注册中心中的“僵尸节点”。后来我们通过优化反注册逻辑,对于下线机器、节点销毁的场景,通过调用注册中心提供的批量反注册接口,一次调用就可以把该节点上提供的所有服务同时反注册掉,从而避免了“僵尸节点”的出现。” 我这里有两个疑惑点: 1.之前的方案是定时清理”僵尸节点”是通过什么方法呢? 简单的ping一下,看能否通?然后发现一个僵尸节点就删掉 2.优化反注册接口,批量删除。老师能具体说下方案吗? 如果批量删除,会不会存在一个时间窗口,僵尸节点还在注册中心的情况?
    2018-09-18
    6
    29
  • 吴浩
    服务注册流程中注册节点有个问题想问下 为什么查看注册的Cluster(服务的接口名)和Service(服务的的分组)是否存在,不存在就抛出异常 这里为什么不是不存在就添加这个服务的接口名了,为什么是报错,第一次初始化是在哪进行的了
    2018-10-09
    3
    17
  • 拉风一哥
    感觉讲的太抽象了,能不能结合具体的实例。你说的这些解决方案,也是抽象的方案,比如多注册中心要如何实现,实现的时候该注意什么问题?
    2019-03-24
    2
    9
  • 张龙大骗子
    Eureka就有僵尸节点的问题,一个服务下线后,消费者可能需要100多秒才能感知到
    2018-09-18
    5
  • 少帅
    Eurka可以调整心跳时间来处理僵尸接点
    2018-09-18
    4
  • pscj
    吴浩同学的疑问也是我想问的,最开始中心里一个服务都没有。注册的时候为什么service不存在,就抛异常了,难道不应该是保存?
    2018-11-16
    3
  • yga
    对于现有的注册中心,比如euraka,对于文中提到的流程优化方案,需要如何操作?
    2018-09-18
    3
收起评论
显示
设置
留言
35
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部