您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

Dubbo高级特性应用之多注册中心

时间:2020-07-18 14:41:57  来源:  作者:

概述

Dubbo支持同一服务向多个注册中心同时注册,或者不同服务分别注册到不同的注册中心上去,甚至可以同时引用注册在不同注册中心上的同名服务。另外,注册中心是也支持自定义扩展。

多注册中心注册

首先dubbo:registry定义多个注册中心,每个注册中心使用id作为唯一标识;然后曝露服务时,在dubbo:service的registry属性上引用要注册的注册中心,多个注册中心id使用逗号分隔

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:dubbo="http://dubbo.Apache.org/schema/dubbo"
       xmlns="http://www.springframework.org/schema/beans"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
       http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">

    <!-- 服务提供方应用名称,方便用于依赖跟踪,另外,指定使用slf4j日志-->
    <dubbo:Application name="coffee-operation-center" logger="slf4j"/>

    <!-- 声明华南、华中、华北三个注册中心 -->
    <dubbo:registry id="huananRegistry" address="zookeeper://192.168.8.156:2181"/>
    <dubbo:registry id="huazhongRegistry" address="zookeeper://192.168.8.157:2181" default="false"/>
    <dubbo:registry id="huabeiRegistry" address="zookeeper://192.168.8.158:2181" default="false"/>

    <!-- 声明orderService的实现bean -->
    <bean id="orderService" class="com.fandou.coffee.order.service.OrderServiceImpl" />
    <!-- 曝露订单服务:注册到三个注册中心 -->
    <dubbo:service registry="huananRegistry,huazhongRegistry,huabeiRegistry" interface="com.fandou.coffee.api.order.OrderService" ref="orderService"/>
</beans>

不同服务注册到不同注册中心

比如支付服务,在不同的国家地区,可能使用不同的支付服务,有些支付服务可以跨国家地区,有些只能在本地区使用

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
       xmlns="http://www.springframework.org/schema/beans"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
       http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">

    <!-- 服务提供方应用名称,方便用于依赖跟踪,另外,指定使用slf4j日志-->
    <dubbo:application name="coffee-operation-center" logger="slf4j"/>

    <!-- 声明美洲、亚洲、欧洲三个注册中心 -->
    <dubbo:registry id="americaRegistry" address="zookeeper://192.168.8.156:2181"/>
    <dubbo:registry id="asiaRegistry" address="zookeeper://192.168.8.157:2181" default="false"/>
    <dubbo:registry id="europeRegistry" address="zookeeper://192.168.8.158:2181" default="false"/>

    <!-- 多种在线支付服务 -->
    <bean id="weChatPayService" class="com.fandou.coffee.pay.service.WeChatPayServiceImpl" />
    <bean id="aliPayService" class="com.fandou.coffee.pay.service.AliPayServiceImpl" />
    <bean id="applePayService" class="com.fandou.coffee.pay.service.ApplePayServiceImpl" />
    <bean id="paypalPayService" class="com.fandou.coffee.pay.service.PaypalPayServiceImpl" />

    <!-- 微信、支付宝在亚洲注册中心,paypal在美洲和欧洲注册中心,applePay注册到全部注册中心-->
    <dubbo:service registry="asiaRegistry" group="pay.wechat" interface="com.fandou.coffee.api.pay.PayService" ref="weChatPayService"/>
    <dubbo:service registry="asiaRegistry" group="pay.ali" interface="com.fandou.coffee.api.pay.PayService" ref="aliPayService"/>
    <dubbo:service registry="americaRegistry,asiaRegistry,europeRegistry" group="pay.apply" interface="com.fandou.coffee.api.pay.PayService" ref="applePayService"/>

    <dubbo:service registry="americaRegistry,europeRegistry" group="pay.paypal" interface="com.fandou.coffee.api.pay.PayService" ref="paypalPayService"/>
</beans>

多注册中心引用

对于服务消费者方,需要用到哪个注册中心,就声明哪个注册中心,无需将全部注册中心进行声明。引用服务的时候,按需引用即可。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
       xmlns="http://www.springframework.org/schema/beans"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
       http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">

    <!-- 服务消费方应用名称,方便用于依赖跟踪 -->
    <dubbo:application name="coffee-user-center" logger="slf4j">
        <dubbo:parameter key="qos.enable" value="true" />
        <dubbo:parameter key="qos.accept.foreign.ip" value="false" />
        <dubbo:parameter key="qos.port" value="33333" />
    </dubbo:application>

    <!-- 用到欧洲和亚洲两个注册中心 -->
    <dubbo:registry id="asiaRegistry" address="zookeeper://192.168.8.157:2181"/>
    <dubbo:registry id="europeRegistry" address="zookeeper://192.168.8.158:2181" default="false"/>

    <dubbo:protocol name="dubbo" port="20881"/>
    
    <!-- 不同的支付服务引用从不同的注册中心中引用 -->
    <dubbo:reference registry="asiaRegistry"  id="weChatPayService" group="pay.wechat" interface="com.fandou.coffee.api.pay.PayService" check="false" />
    <dubbo:reference registry="asiaRegistry"  id="aliPayService" group="pay.ali" interface="com.fandou.coffee.api.pay.PayService" check="false" />
    <dubbo:reference registry="europeRegistry"  id="applyPayService" group="pay.apply" interface="com.fandou.coffee.api.pay.PayService" check="false" />
</beans>

总结

在Dubbo中,一个服务可以向多个注册中心同时注册,不同服务可以分别注册到不同的注册中心上去。

Dubbo高级特性应用之多注册中心

dubbo的多注册中心应用



Tags:Dubbo   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
第一部分介绍生产上出现Dubbo服务拥堵的情况,以及Dubbo官方对于单个长连接的使用建议。 第二部分介绍Dubbo在特定配置下的通信过程,辅以代码。 第三部分介绍整个调用过程中与性能相关的一些参数。 第四部分通过调整...【详细内容】
2021-06-18  Tags: Dubbo  点击:(123)  评论:(0)  加入收藏
1. Dubbo简介及线程池策略Apache Dubbo 是一款高性能、轻量级的开源 Java 服务框架。提供了六大核心能力:面向接口代理的高性能RPC调用,智能容错和负载均衡,服务自动注册和发现...【详细内容】
2021-05-18  Tags: Dubbo  点击:(202)  评论:(0)  加入收藏
Dubbo里除了Service和Config层为API,其它各层均为SPI。相比于Java中的SPI仅仅通过接口类名获取所有实现,Dubbo的实现可以通过接口类名和key值来获取一个具体的实现。通过SPI...【详细内容】
2020-09-07  Tags: Dubbo  点击:(62)  评论:(0)  加入收藏
Dubbo(来自于阿里巴巴)Dubbo是一个分布式服务框架,致力于提供高性能和透明化的PRC远程调用服务调用方案。 Dubbo的的特点 通过spring配置的方式即可完成服务化,对于应用无入侵。...【详细内容】
2020-08-10  Tags: Dubbo  点击:(41)  评论:(0)  加入收藏
概述Dubbo支持同一服务向多个注册中心同时注册,或者不同服务分别注册到不同的注册中心上去,甚至可以同时引用注册在不同注册中心上的同名服务。另外,注册中心是也支持自定义扩...【详细内容】
2020-07-18  Tags: Dubbo  点击:(54)  评论:(0)  加入收藏
导读:在分布式系统中,远程调用是最基础也是最重要的基石。历史上,曾经先后出现过 CORBA、RMI、EJB、WebService 等技术和规范,在服务化以及微服务日趋流行的今天,更多的被广泛使...【详细内容】
2020-07-13  Tags: Dubbo  点击:(65)  评论:(0)  加入收藏
概述Dubbo的配置项非常多,但所有配置项分为三大类,服务发现、服务治理、性能调优。服务发现类的配置项,表示该配置项用于服务的注册与发现,目的是让消费方找到提供方;服务治理类...【详细内容】
2020-07-13  Tags: Dubbo  点击:(95)  评论:(0)  加入收藏
前言这周收到外部合作同事推送的一篇文章,【漏洞通告】Apache Dubbo Provider默认反序列化远程代码执行漏洞(CVE-2020-1948)通告。按照文章披露的漏洞影响范围,可以说是当前所有...【详细内容】
2020-07-09  Tags: Dubbo  点击:(118)  评论:(0)  加入收藏
0x01 漏洞背景2020年06月23日, 360CERT监测发现 Apache Dubbo 官方 发布了 Apache Dubbo 远程代码执行 的风险通告,该漏洞编号为 CVE-2020-1948,漏洞等级:高危。Apache Dubbo...【详细内容】
2020-06-24  Tags: Dubbo  点击:(47)  评论:(0)  加入收藏
不知道你是否在工作中有遇到过类似情况: dubbo接口调试复杂,需要通过telnet命令或者通过consumer调用来触发。 telnet语句参数格式复杂,每次编写都要小心谨慎,一旦出错又需重来...【详细内容】
2020-06-18  Tags: Dubbo  点击:(59)  评论:(0)  加入收藏
▌简易百科推荐
本文分为三个等级自顶向下地分析了glibc中内存分配与回收的过程。本文不过度关注细节,因此只是分别从arena层次、bin层次、chunk层次进行图解,而不涉及有关指针的具体操作。前...【详细内容】
2021-12-28  linux技术栈    Tags:glibc   点击:(3)  评论:(0)  加入收藏
摘 要 (OF作品展示)OF之前介绍了用python实现数据可视化、数据分析及一些小项目,但基本都是后端的知识。想要做一个好看的可视化大屏,我们还要学一些前端的知识(vue),网上有很多比...【详细内容】
2021-12-27  项目与数据管理    Tags:Vue   点击:(2)  评论:(0)  加入收藏
程序是如何被执行的&emsp;&emsp;程序是如何被执行的?许多开发者可能也没法回答这个问题,大多数人更注重的是如何编写程序,却不会太注意编写好的程序是如何被运行,这并不是一个好...【详细内容】
2021-12-23  IT学习日记    Tags:程序   点击:(9)  评论:(0)  加入收藏
阅读收获✔️1. 了解单点登录实现原理✔️2. 掌握快速使用xxl-sso接入单点登录功能一、早期的多系统登录解决方案 单系统登录解决方案的核心是cookie,cookie携带会话id在浏览器...【详细内容】
2021-12-23  程序yuan    Tags:单点登录(   点击:(8)  评论:(0)  加入收藏
下载Eclipse RCP IDE如果你电脑上还没有安装Eclipse,那么请到这里下载对应版本的软件进行安装。具体的安装步骤就不在这赘述了。创建第一个标准Eclipse RCP应用(总共分为六步)1...【详细内容】
2021-12-22  阿福ChrisYuan    Tags:RCP应用   点击:(7)  评论:(0)  加入收藏
今天想简单聊一聊 Token 的 Value Capture,就是币的价值问题。首先说明啊,这个话题包含的内容非常之光,Token 的经济学设计也可以包含诸多问题,所以几乎不可能把这个问题说的清...【详细内容】
2021-12-21  唐少华TSH    Tags:Token   点击:(10)  评论:(0)  加入收藏
实现效果:假如有10条数据,分组展示,默认在当前页面展示4个,点击换一批,从第5个开始继续展示,到最后一组,再重新返回到第一组 data() { return { qList: [], //处理后...【详细内容】
2021-12-17  Mason程    Tags:VUE   点击:(14)  评论:(0)  加入收藏
什么是性能调优?(what) 为什么需要性能调优?(why) 什么时候需要性能调优?(when) 什么地方需要性能调优?(where) 什么时候来进行性能调优?(who) 怎么样进行性能调优?(How) 硬件配...【详细内容】
2021-12-16  软件测试小p    Tags:性能调优   点击:(20)  评论:(0)  加入收藏
Tasker 是一款适用于 Android 设备的高级自动化应用,它可以通过脚本让重复性的操作自动运行,提高效率。 不知道从哪里听说的抖音 app 会导致 OLED 屏幕烧屏。于是就现学现卖,自...【详细内容】
2021-12-15  ITBang    Tags:抖音防烧屏   点击:(25)  评论:(0)  加入收藏
11 月 23 日,Rust Moderation Team(审核团队)在 GitHub 上发布了辞职公告,即刻生效。根据公告,审核团队集体辞职是为了抗议 Rust 核心团队(Core team)在执行社区行为准则和标准上...【详细内容】
2021-12-15  InfoQ    Tags:Rust   点击:(25)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条