Dubbo之旅--扩展注册中心

在上篇文章中我们介绍了关于协议的扩展,并了解扩展它所需要的需求.本篇主要是对注册中心的扩展进行着重的探索.

同样的问题,为什么我们需要去扩展注册中心的?主要有以下三个需求.

(1) 多注册中心注册

需求:xx银行有些服务来不及在上海部署,只在北京部署,而上海的其它应用需要引用此服务,就可以将服务同时注册到两个注册中心。

consumer.xml

<?xmlversion="1.0"encoding="UTF-8"?>

<beansxmlns=" http://www.springframework.org/schema/beans"

xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance"

xmlns:dubbo=" http://code.alibabatech.com/schema/dubbo"

xsi:schemaLocation=" http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://code.alibabatech.com/schema/dubbo

http://code.alibabatech.com/schema/dubbo/dubbo.xsd

">

<dubbo:applicationname="world"/>

<!-- 多注册中心配置 -->

<dubbo:registryid="beijingRegistry"address="10.20.141.150:9090"/>

<dubbo:registryid="shanghaiRegistry"address="10.20.141.151:9010"default="false"/>

<!-- 向多个注册中心注册 -->

<dubbo:serviceinterface="com.alibaba.hello.api.HelloService"version="1.0.0"ref="helloService"registry="beijingRegistry,shanghaiRegistry"/>

</beans>

以上的工作便是扩展了注册中心,多注册中心注册,将HelloService的服务同时注册到上海和北京的注册中心

(2) 不同服务使用不同注册中心

需求:xx银行有些服务是专门为国外设计的,有些服务是专门为国内设计的。

consumer.xml

<?xmlversion="1.0"encoding="UTF-8"?>

<beansxmlns=" http://www.springframework.org/schema/beans"

xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance"

xmlns:dubbo=" http://code.alibabatech.com/schema/dubbo"

xsi:schemaLocation=" http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://code.alibabatech.com/schema/dubbo

http://code.alibabatech.com/schema/dubbo/dubbo.xsd

">

<dubbo:applicationname="world"/>

<!-- 多注册中心配置 -->

<dubbo:registryid="chinaRegistry"address="10.20.141.150:9090"/>

<dubbo:registryid="intlRegistry"address="10.20.154.177:9010"default="false"/>

<!-- 向国内注册中心注册 -->

<dubbo:serviceinterface="com.alibaba.hello.api.HelloService"version="1.0.0"ref="helloService"registry="chinaRegistry"/>

<!-- 向国外注册中心注册 -->

<dubbo:serviceinterface="com.alibaba.hello.api.DemoService"version="1.0.0"ref="demoService"registry="intlRegistry"/>

</beans>

不同服务使用不同注册中心是注册中心扩展的第二个需求,当然这个内容对于开发者而言非常有用,尤其是在本地调试进行开发的时候一些服务是我本地所不能提供的,这时候这种需求就需要我们扩展注册中心.

(3) 多注册中心引用

需求:xx银行需同时调用国内和国外的xxx服务,xxx服务在中文站和国际站均有部署,接口及版本号都一样,但连的数据库不一样。

consumer.xml

<?xmlversion="1.0"encoding="UTF-8"?>

<beansxmlns=" http://www.springframework.org/schema/beans"

xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance"

xmlns:dubbo=" http://code.alibabatech.com/schema/dubbo"

xsi:schemaLocation=" http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://code.alibabatech.com/schema/dubbo

http://code.alibabatech.com/schema/dubbo/dubbo.xsd

">

<dubbo:applicationname="world"/>

<!-- 多注册中心配置 -->

<dubbo:registryid="chinaRegistry"address="10.20.141.150:9090"/>

<dubbo:registryid="intlRegistry"address="10.20.154.177:9010"default="false"/>

<!-- 引用中文站服务 -->

<dubbo:referenceid="chinaHelloService"interface="com.alibaba.hello.api.HelloService"version="1.0.0"registry="chinaRegistry"/>

<!-- 引用国际站站服务 -->

<dubbo:referenceid="intlHelloService"interface="com.alibaba.hello.api.HelloService"version="1.0.0"registry="intlRegistry"/>

</beans>

如果只是测试环境临时需要连接两个不同注册中心,使用竖号分隔多个不同注册中心地址:

consumer.xml

<?xmlversion="1.0"encoding="UTF-8"?>

<beansxmlns=" http://www.springframework.org/schema/beans"

xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance"

xmlns:dubbo=" http://code.alibabatech.com/schema/dubbo"

xsi:schemaLocation=" http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://code.alibabatech.com/schema/dubbo

http://code.alibabatech.com/schema/dubbo/dubbo.xsd

">

<dubbo:applicationname="world"/>

<!--多注册中心配置,竖号分隔表示同时连接多个不同注册中心,同一注册中心的多个集群地址用逗号分隔 -->

<dubbo:registryaddress="10.20.141.150:9090|10.20.154.177:9010"/>

<!-- 引用服务 -->

<dubbo:referenceid="helloService"interface="com.alibaba.hello.api.HelloService"version="1.0.0"/>

</beans>

通过对扩展注册中心和扩展协议的了解,dubbo本身还是非常灵活的.当然,这里的协议和注册中心只是它多个可扩展内容的一部分.它还具有集群扩展,线程池扩展,缓存扩展,容器扩展等等丰富的扩展内容.其他的扩展内容我在项目中还未实际用到.或许会在以后更为特殊的需求上面用到他们.

时间: 2024-08-03 06:58:34

Dubbo之旅--扩展注册中心的相关文章

Dubbo之旅--扩展协议

在实际工作中运用dubbo的时候,以上系列的文章基本上能够满足项目的基本需求,当然,对于一些特殊的需求Dubbo可以对其进行扩展,Dubbo拥有者丰富的扩展内容,这次主要将会带领大家去感受一下Dubbo的协议扩展和注册中心扩展. 首先要说的是协议扩展. 为什么要扩展协议呢?什么样的需求需要我们去扩展它? (1) 不同服务不同协议 需求:不同服务在性能上适用不同协议进行传输,比如大数据用短连接协议,小数据大并发用长连接协议. consumer.xml <?xmlversion="1.0&qu

12. Dubbo原理解析-注册中心之基于dubbo协议的简单注册中心实现

基于dubbo协议开源只是给出了默认一个注册中心实现SimpleRegistryService, 它只是一个简单实现,不支持集群,就是利用Map<String/*ip:port*/, Map<String/*service*/, URL>来存储服务地址, 具体不在啰嗦了,请读者翻看源代码,可作为自定义注册中的参考. 注册中心启动 SimpleRegistryService本身也是作为一个dubbo服务暴露. <dubbo:protocolport="9090"

构建springmvc+mybatis+dubbo分布式平台-zookeeper注册中心安装

上一篇我们介绍<构建dubbo分布式平台-dubbo简介>,结合dubbo基础简介,今天我们来学习基于zookeeper注册中心的安装. 注册中心 1.建议使用dubbo-2.3.3以上版本的使用zookeeper注册中心客户端 2.Zookeeper是Apache Hadoop的子项目,强度相对较好,建议生产环境使用该注册中心. 3.Dubbo未对Zookeeper服务器端做任何侵入修改,只需安装原生的Zookeeper服务器即可, 所有注册中心逻辑适配都在调用Zookeeper客户端时完成

Dubbo(二):zookeeper 注册中心

zookeeper 注册中心 Zookeeper 是 Apacahe Hadoop 的子项目,是一个树型的目录服务,支持变更推送,适合作为 Dubbo 服务的注册中心,工业强度较高,可用于生产环境,并推荐使用 [1]. 流程说明: 服务提供者启动时: 向 /dubbo/com.foo.BarService/providers 目录下写入自己的 URL 地址 服务消费者启动时: 订阅 /dubbo/com.foo.BarService/providers 目录下的提供者 URL 地址.并向 /du

Dubbo -- 系统学习 笔记 -- 示例 -- 多注册中心

Dubbo -- 系统学习 笔记 -- 目录 示例 想完整的运行起来,请参见:快速启动,这里只列出各种场景的配置方式 多注册中心 可以自行扩展注册中心,参见:注册中心扩展 (1) 多注册中心注册 比如:中文站有些服务来不及在青岛部署,只在杭州部署,而青岛的其它应用需要引用此服务,就可以将服务同时注册到两个注册中心. XML : provider.xml <?xml version="1.0" encoding="UTF-8"?> <beans xm

开发dubbo应用程序(二)dubbo注册中心相关概述

1.注册中心概述 ? 在Dubbo微服务体系中,注册中心是其核心组件之一.Dubbo通过注册中心实现了分布式环境中各微服务之间的注册与发现,是各分布式节点之间的纽带.其主要作用如下: 动态加入.一个服务提供者通过注册中心可以动地把自己暴露给其他消费者,无序消费者逐个去更新配置文件; 动态发现.一个消费者可以动态地感知新的配置.路由规则和新的服务提供者,无需重启服务使之生效: 动态调整.注册中心支持参数的动态调整,新参数自动更新到所有相关服务节点: 统一配置.避免了本地配置导致每个服务的配置不一致

Dubbo-服务注册中心之AbstractRegistry

在dubbo中,关于注册中心Registry的有关实现封装在了dubbo-registry模块中.提供者(Provider)个消费者(Consumer)都是通过注册中心进行资源的调度.当服务启动时,provider会调用注册中心的register方法将自己的服务通过url的方式发布到注册中心,而consumer订阅其他服务时,会将订阅的服务通过url发送给注册中心(URL中通常会包含各种配置).当某个服务被关闭时,它则会从注册中心中移除,当某个服务被修改时,则会调用notify方法触发所有的监听

服务注册中心,Eureka与Zookeeper比较

转自https://my.oschina.net/thinwonton/blog/1622905 1. 前言 服务注册中心,给客户端提供可供调用的服务列表,客户端在进行远程服务调用时,根据服务列表然后选择服务提供方的服务地址进行服务调用.服务注册中心在分布式系统中大量应用,是分布式系统中不可或缺的组件,例如rocketmq的name server,hdfs中的namenode,dubbo中的zk注册中心,spring cloud中的服务注册中心eureka. 在spring cloud中,除了可

Dubbo之旅--注册中心

在介绍Dubbo的内部逻辑的时候提到很多次注册中心的概念.实现注册中心的有很多,主要是以下四个注册中心分别是: Multicast注册中心 Zookeeper注册中心 Redis注册中心 Simple注册中心 这里将对注册中心的一个实现Zookeeper跟大家分享,因为Zookeeper是应用比较多,也是我们项目中实际用到的注册中心. ZooKeeper 是一个为分布式应用所设计的分布的.开源的协调服务.分布式的应用可以建立在同步.配置管理.分组和命名等服务的更高级别的实现的基础之上. ZooK