【一】原理图
【二】原理图解释
流程:
1.服务提供者启动时向/dubbo/com.foo.BarService/providers目录下写入URL
2.服务消费者启动时订阅/dubbo/com.foo.BarService/providers目录下的URL向/dubbo/com.foo.BarService/consumers目录下写入自己的URL
3.监控中心启动时订阅/dubbo/com.foo.BarService目录下的所有提供者和消费者URL
支持以下功能:
1.当提供者出现断电等异常停机时,注册中心能自动删除提供者信息。
2.当注册中心重启时,能自动恢复注册数据,以及订阅请求。
3.当会话过期时,能自动恢复注册数据,以及订阅请求。
4.当设置<dubbo:registry check="false" />时,记录失败注册和订阅请求,后台定时重试。
5.可通过<dubbo:registry username="admin" password="1234" />设置zookeeper登录信息。
6.可通过<dubbo:registry group="dubbo" />设置zookeeper的根节点,不设置将使用无根树。
7.支持*号通配符<dubbo:reference group="*" version="*" />,可订阅服务的所有分组和所有版本的提供者。
【三】Dubbo的基本服务流程
(1)提供服务的项目启动后将自己要对外提供的服务注册到Zookeeper上。/dubbo/接口名/providers/url
(2)消费服务的项目启动后向自己需要消费的接口节点订阅服务列表(/dubbo/接口名/providers),同时将自己的地址写到(/dubbo/接口名/consumers/url)
(3)当订阅成功后,一旦所订阅的节点下的服务列表有变化,zookeeper就会向消费端推送新的服务列表地址
(4)消费者要调用某个服务,则根据订阅的服务列表中根据路由规则挑选一台,调用服务提供者。
(5)在调用的同时会消费者和服务提供者会统计调用次数,记录到内存中。定时将数据推送的zookeeper中。
【DUBBO】zookeeper在dubbo中作为注册中心的原理结构的更多相关文章
-
Dubbo中多注册中心问题与服务分组
一:注册中心 1.场景 Dubbo 支持同一服务向多注册中心同时注册, 或者不同服务分别注册到不同的注册中心上去, 甚至可以同时引用注册在不同注册中心上的同名服务. 2.多注册中心注册 中文站有些服务 ...
-
Dubbo(七):redis注册中心的应用
上篇我们讲了Dubbo中有一个非常本质和重要的功能,那就是服务的自动注册与发现,而这个功能是通过注册中心来实现的.上篇中使用zookeeper实现了注册中心的功能,同时了提了dubbo中有其他许多的注 ...
-
Zookeeper学习笔记:简单注册中心
zookeeper可以作为微服务注册中心,spring cloud也提供了zookeeper注册中心的支持. 本文介绍如何实现一个简单的zookeeper注册中心,主要的实现方式: n个服务提供者对外 ...
-
springCloud中的注册中心Nacos
springCloud中的注册中心Nacos 三个模块: 1.注册中心 2.服务提供者(生产者) 提供服务 3.服务消费者(消费者)调用服务 流程:消费者和生产者都要向注册中心注册,注册的是二者中服务 ...
-
如果有人问你 Dubbo 中注册中心工作原理,就把这篇文章给他
注册中心作用 开篇首先想思考一个问题,没有注册中心 Dubbo 还能玩下去吗? 当然可以,只要知道服务提供者地址相关信息,消费者配置之后就可以调用.如果只有几个服务,这么玩当然没问题.但是生产服务动辄 ...
-
Dubbo源码解析之registry注册中心
阅读须知 dubbo版本:2.6.0 spring版本:4.3.8 文章中使用/* */注释的方法会做深入分析 正文注册中心是Dubbo的重要组成部分,主要用于服务的注册与发现,我们可以选择Redis ...
-
DUBBO+Zookeeper在Centos7中本地搭建及小案例
环境: 1.centos7 2.jdk-7u76-linux-x64.tar.gz 2.tomcat:apache-tomcat-7.0.59.tar.gz 3.zookeeper-3.4.6.tar ...
-
Dubbo -- 系统学习 笔记 -- 示例 -- 多注册中心
Dubbo -- 系统学习 笔记 -- 目录 示例 想完整的运行起来,请参见:快速启动,这里只列出各种场景的配置方式 多注册中心 可以自行扩展注册中心,参见:注册中心扩展 (1) 多注册中心注册 比如 ...
-
Spring Boot 2.x (十五):Dubbo + Zookeeper + 新版Dubbo Admin
Dubbo 简介 Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的RPC实现服务的输出和输入功能,可以和Spring框架无缝集成. 它提供了三大核心能力: 面向接口的远程 ...
随机推荐
-
JavaScript中实现extend()方法
var male = { sex: "male" }; var xiaoming = { name: "xiaoming", school: "xin ...
-
Activity一共有以下四种launchMode
1. standard: 无论什么情况都会生成一个新的Activity实例,并且放于栈顶. 2. singleTop:如果Activity纯在但是不位于栈顶,就重新生成一个Activity实例. 3. ...
-
Sqlserver 高并发和大数据存储方案
Sqlserver 高并发和大数据存储方案 随着用户的日益递增,日活和峰值的暴涨,数据库处理性能面临着巨大的挑战.下面分享下对实际10万+峰值的平台的数据库优化方案.与大家一起讨论,互相学习提高! ...
-
常见C/C++笔试、面试题(二)
我自己总结过一些常见的C++面试题,那个是基于一个同学的腾讯面经所问问题,再加上知识点扩展进行了总结,这个是网上之前就有的版本,比较基础,有些题目总结一下,不能忘了基础: 1.求下面函数的返回值( 微 ...
-
keepalived(nat)+ftp+http
一. 环境要求需要2台LVS和n(n>=2)台RS操作系统 负载均衡模式 VIP NVIPRHEL7.4 NAT 193.168.141.30 192.168.102.165 LVS1 LVS2 ...
-
网络通信 -->; 同步、异步、阻塞与非阻塞介绍
同步.异步.阻塞与非阻塞介绍 聊聊同步.异步.阻塞与非阻塞
-
《JavaScript高级程序设计》笔记:BOM(八)
BOM(浏览器对象模型)提供了很多对象,用于访问浏览器的功能,这些功能与任何网页内容无关. window对象 全局作用域 定义全局变量与在window对象上直接定义属性还是有一点差别:全局变量不能通过 ...
-
NodeJS脚本启动工具总结
1. 使用npm 2. 使用pm2 安装: npm install pm2 -g 启动: NODE_ENV=test pm2 start newsCrawler.js 停止: pm2 stop new ...
-
浅析String类
这是对于String类的一些总结,我将会从几个方面并且结合着字符串池等相关知识进行总结 进程如下: 1.对于String类基本知识的一些总结 2.简要介绍字符串池 3.分 ...
-
在写php项目时 修改外部css或js文件没有效果
原因是:浏览器的自动缓存机制导致的. 这是因为浏览器会自动缓存静态文件以加快访问速度,所以这就导致浏览器将不会再接收静态文件了 解决办法是 使用ctrl+F5 —— 传说中的完全刷新,会删掉所有本地临 ...