dubbo与zookeeper的交互-1
来源:互联网 发布:linux tomcat调试模式 编辑:程序博客网 时间:2024/06/04 18:06
dubbo-admin学习总结:
dubbo能从zookeeper注册中心获得服务信息,是通过registryService,并且可以通过registryService对dubbo进行操作
详解:
与服务注册相关的类:
RegistryService:顶层接口
Registry:接口,继承顶层接口 与Node接口(暂不知何用)
AbstractRegistry:抽象类,实现registry接口,在构造函数中加载dubbo本地配置文件的内容./dubbo/dubbo-reditry-xxxx.cache
FailbackRegistry:抽象类,继承AbstractRegistry,有很多实现类
ZookeeperTransporter:接口,定义了连接注册中心的方法
ZkclientZookeeperTransporter:实现接口ZookeeperTransporter
ZookeeperRegistry:FailbackRegistry的实现类,对url进行操作的实现类,初始化时有两个参数,url和ZookeeperTransporter,在创建时完成对注册中心的连接返回ZookeeperClient,最终完成最注册中心操作的实现类
URL:各种路径的实体类,封装了protocol(协议类型),path(service路径),port(ip和端口)parameter(参数如组名、类型等)等参数。
RegistryServerSync:缓存,注册中心内的服务的缓存,实现了接口NotifyListener,实现的的notify(List<url>)方法,能够接受zookeeper的方向推送内容
dubbo-admin服务在启动的时候,会读取配置文件中dubbo标签的配置,生成url对象底层调用ZookeeperRegistry去连接注册中心,同时调用RegistryServerSync的subscribe(url,lictener)监听所有的服务,同时该类实现的notify方法,能够在zookeeper注册中心信息变化是接受注册中心额信息的推送,将zookeeper中心的注册信息保存在自定义的map集合中,当对服务进行查询时,都从缓存中查询。
缓存Map的实例:ConcurrentMap<String, ConcurrentMap<String, Map<Long, URL>>>:服务类别(providers或者consumers),Map
ConcurrentMap<String, Map<Long, URL>>: serviceKey(每一个服务的service都有按照规则合成的key),Map
Map<Long, URL> :service对应的id及url
dubbo-admin在注册服务时,用来监听所有服务的监听器即:RegistryServerSync,就会获得由注册中心获得的所有服务信息的推送
- dubbo与zookeeper的交互-1
- dubbo与zookeeper的交互-2
- dubbo与zookeeper交互-3
- Dubbo与Zookeeper的组合配置(1)
- Dubbo 与 Zookeeper SpringMVC 的整合
- 一.zookeeper与dubbo的使用
- zookeeper与dubbo的环境搭建
- zookeeper与dubbo关系
- zookeeper与dubbo
- zookeeper与dubbo关系
- Zookeeper与Dubbo浅析
- zookeeper与dubbo集成
- dubbo与zookeeper
- 分布式服务框架DUBBO(二)搭建dubbo服务-zookeeper与dubbo-admin的安装
- dubbo-zookeeper的安装
- zookeeper集群与Dubbo的实现与整合
- Dubbo zookeeper 初探(1)
- Dubbo+Zookeeper+Spring (1)
- String index out of range: 0
- Xutils 3.0+数据库操作
- TCP、UDP、IP 协议分析
- 打印功能的实现
- Android Studio导入Github工程问题总结-download gradle非常慢
- dubbo与zookeeper的交互-1
- iOS-nil、Nil、NULL和NSNull区别详细说明(去除数据请求返回的null)
- sum Double in java
- 关于Struts2 Global-allowed-methods 标签
- 好用的ListView
- c#+oracle实现读取图片并显示在picturebox中
- Spring Boot CLI 安装
- caffe学习笔记(13):python cv2.imread()读取图片和matlab读取图像的区别
- Java String深入理解