zoukankan      html  css  js  c++  java
  • dubbo连接过程

    场景1 启动时

    dubbo服务提供端在Zookeeper上注册的节点目录:假设接口名称是:com.bob.dubbo.service.CityDubboService
    zk节点结构

    dubbo服务提供端连接到注册中心,注册自身到/providers目录下,其节点信息参考如下。
    dubbo服务提供端节点信息

    其中第4个节点是临时节点。心跳检测超时zk会删除临时节点。

    dubbo服务消费端连接到注册中心,注册自身到/consumers目录下,同时还会订阅/providers目录,实时获取其上Provider的URL字符串信息。同时订阅获得的Provider信息持久化到本地文件。
    /providers下的临时节点变动时,dubbo服务消费端会拉取最新的/providers目录。

    5s定时任务

    dubbo服务提供端(Provider)或dubbo服务提供端(Consumer)启动成功后,会创建一个5s定时任务,内容如下:

    Provider向zookeeper注册自身的url,生成一个临时的znode
    Provider从Dubbo容器中退出,停止提供RPC调用。也就是移除zookeeper内自身url对应的znode
    Consumer订阅 `/dubbo/Service/providers` 目录的子节点,生成ChildListener
    Consumer从Dubbo容器中退出,移除之前创建的ChildListener
    

    场景2 zk服务器挂掉

    dubbo服务提供端(Provider)或dubbo服务提供端(Consumer)内部的zkClient会不停地尝试连接Server。
    连接成功后重新注册和订阅。
    连接不成功,不影响dubbo服务提供端(Consumer)调用。加载本地文件的Provider信息进行调用。

    参考:
    https://blog.csdn.net/qq_27529917/article/details/80632078
    https://juejin.im/post/5cd29c1c6fb9a031f0381306

  • 相关阅读:
    个人作业——软件评测
    软件工程实践2019第五次作业
    18年今日头条笔试第一题题解:球迷(fans)
    游戏2.1版本
    游戏2.0版本 代码
    游戏2.0版本
    改进版游戏代码
    改进版游戏
    2017.1.13之审判日
    找朋友 的内存超限代码
  • 原文地址:https://www.cnblogs.com/samwu/p/11969971.html
Copyright © 2011-2022 走看看