`
huangjinjin520
  • 浏览: 71159 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Dubbo多注册中心和Zookeeper服务的迁移

阅读更多
一、Dubbo多注册中心

1、 应用场景

例如阿里有些服务来不及在青岛部署,只在杭州部署,而青岛的其它应用需要引用此服务,就可以将服务同时注册到两个注册中心。

consumer.xml

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://code.alibabatech.com/schema/dubbohttp://code.alibabatech.com/schema/dubbo/dubbo.xsd"> 
  
    <dubbo:application name="world"  /> 
  
    <!-- 多注册中心配置 --> 
    <dubbo:registry id="hangzhouRegistry" address="10.20.141.150:9090" /> 
    <dubbo:registry id="qingdaoRegistry" address="10.20.141.151:9010" default="false" /> 
  
    <!-- 向多个注册中心注册 --> 
    <dubbo:service interface="com.alibaba.hello.api.HelloService" version="1.0.0" ref="helloService" registry="hangzhouRegistry,qingdaoRegistry" /> 
  
</beans>

2、不同服务使用不同注册中心


比如:CRM有些服务是专门为国际站设计的,有些服务是专门为中文站设计的。

consumer.xml

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://code.alibabatech.com/schema/dubbohttp://code.alibabatech.com/schema/dubbo/dubbo.xsd"> 
  
    <dubbo:application name="world"  /> 
  
    <!-- 多注册中心配置 --> 
    <dubbo:registry id="chinaRegistry" address="10.20.141.150:9090" /> 
    <dubbo:registry id="intlRegistry" address="10.20.154.177:9010" default="false" /> 
  
    <!-- 向中文站注册中心注册 --> 
    <dubbo:service interface="com.alibaba.hello.api.HelloService" version="1.0.0" ref="helloService" registry="chinaRegistry" /> 
  
    <!-- 向国际站注册中心注册 --> 
    <dubbo:service interface="com.alibaba.hello.api.DemoService" version="1.0.0" ref="demoService" registry="intlRegistry" /> 
  
</beans>
3、多注册中心引用


比如:CRM需同时调用中文站和国际站的PC2服务,PC2在中文站和国际站均有部署,接口及版本号都一样,但连的数据库不一样。

consumer.xml

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://code.alibabatech.com/schema/dubbohttp://code.alibabatech.com/schema/dubbo/dubbo.xsd"> 
  
    <dubbo:application name="world"  /> 
  
    <!-- 多注册中心配置 --> 
    <dubbo:registry id="chinaRegistry" address="10.20.141.150:9090" /> 
    <dubbo:registry id="intlRegistry" address="10.20.154.177:9010" default="false" /> 
  
    <!-- 引用中文站服务 --> 
    <dubbo:reference id="chinaHelloService" interface="com.alibaba.hello.api.HelloService" version="1.0.0" registry="chinaRegistry" /> 
  
    <!-- 引用国际站站服务 --> 
    <dubbo:reference id="intlHelloService" interface="com.alibaba.hello.api.HelloService" version="1.0.0" registry="intlRegistry" /> 
  
</beans> 

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

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://code.alibabatech.com/schema/dubbohttp://code.alibabatech.com/schema/dubbo/dubbo.xsd"> 
  
    <dubbo:application name="world"  /> 
  
    <!-- 多注册中心配置,竖号分隔表示同时连接多个不同注册中心,同一注册中心的多个集群地址用逗号分隔 --> 
    <dubbo:registry address="10.20.141.150:9090|10.20.154.177:9010" /> 
  
    <!-- 引用服务 --> 
    <dubbo:reference id="helloService" interface="com.alibaba.hello.api.HelloService" version="1.0.0" /> 
  
</beans> 
二、Dubbo多注册中心的服务迁移
1、顾名思义,将服务从一个地儿迁到另一个地儿,例如从A地迁到B地。

2、如何实现多注册中心的服务迁移

步骤一

     添加B地的注册中心地址,AB两地的注册中心间用英文的|分割,(同一个服务集群的zk节点使用逗号分割)

     例如:dubbo.registry.address=192.168.220.128:2181|192.168.221.129:2181,192.168.221.130:2181,192.168.221.131:2181 这就是两个注册中心配置sample

步骤二

     Jenkins重新构建服务,zk1本身就是含有全部服务的,现在构建是将服务部署到zk2集群中。这样就可实现A的zk和B地的zk两套注册中心享有两套相同的服务

步骤三

     把服务的消费端都构建一遍;

步骤四

     先取消服务消费者调用zk1的服务,具体实施就是去掉第一个zk的配置,然后构建消费者

步骤五

     把服务提供者的配置也取消;然后重新构建服务提供者。这样就完成了将zk1中的所有服务迁移到zk2中,且去除zk1中的所有服务。




vue angular  dubbo  spring 视频




  • 大小: 19.2 KB
  • 大小: 39.9 KB
0
0
分享到:
评论

相关推荐

    Zookeeper集群无状态平滑升级、迁移1

    总的来说,Zookeeper集群的无状态平滑升级和迁移是一项复杂但重要的任务,它涉及到对服务状态的精确控制、数据的完整保护以及对用户影响的最小化。通过精心规划和执行,我们可以确保Zookeeper集群在不断变化的环境中...

    Dubbo~zookeeper的RPC框架模型

    当Dubbo服务提供者启动时,它会将自己提供的服务注册到Zookeeper上,包括服务的元数据信息,如接口名、版本、超时时间等。服务消费者在启动时会订阅Zookeeper上的服务,获取服务提供者的地址列表,然后根据负载均衡...

    Dubbo 是一款高性能、轻量级的开源 RPC 框架,提供服务自动注册、自动发现等高效服务治理方案, 可以和 Spring 框架

    - **服务注册与发现流程**:服务提供者启动后向注册中心注册,服务消费者订阅注册中心获取服务信息,实现服务的自动发现。 - **分层设计**:分为服务接口层、服务代理层、服务注册层、服务消费层、配置中心层等。 ...

    zookeeper教程资料.zip

    4. Dubbo:Dubbo通过Zookeeper实现服务注册与发现,实现服务治理。 四、Zookeeper的编程接口 Zookeeper提供了Java和C两种主要的API,开发者可以通过API实现对ZNode的操作,如创建、读取、更新和删除等。此外,还有...

    Dubbo面试专题1

    以上内容涵盖了 Dubbo 中注册中心的作用、服务发现、负载均衡策略、安全机制以及集群容错模式等多个核心知识点。理解这些概念对于在实际项目中使用和优化 Dubbo 非常关键。在面试中,深入讨论这些点可以展示你对...

    dubbo-admin

    Dubbo 提供了服务注册、服务发现、调用路由、负载均衡、容错机制等一系列高级特性,广泛应用于微服务架构中。dubbo-admin 是 Dubbo 生态系统的一部分,它使得运维人员能够更方便地管理这些服务,例如查看服务状态、...

    2018年最新尚硅谷dubbo视频

    2. **服务注册与发现**:讲解如何使用Zookeeper等注册中心实现服务的注册与发现,以及服务元数据的管理。 3. **RPC机制**:深入解析Dubbo的远程过程调用(RPC)机制,包括服务接口、序列化、网络通信等环节。 4. *...

    Java版水果管理系统源码-springboot-dubbo-seata-zk:SpringBoot+Zookeeper+Seata实现Dub

    面我已经写过一篇的文章,今天为什么还要写这篇呢,是因为好多公司还在用Zookeeper作为Dubbo的注册中心和配置中心在大规模使用,还没有完全迁移到Nacos上来,所以Seata的注册中心和配置也是支持Zookeeper,但是官方...

    基于guns、dubbo的影院中心系统.zip

    通过Dubbo,系统能够将复杂业务拆分为多个独立的服务,每个服务都能独立部署和扩展,从而提高系统的弹性和可扩展性。 MySQL作为关系型数据库管理系统,广泛应用于数据存储。在这个影院系统中,MySQL用于存储用户...

    zookeeper实现分布式session sample

    - 使用Zookeeper,可以将session信息存储在一个中心化的Znode上,所有服务器都监听这个Znode的变化。 - 当用户在集群中的一个节点创建session时,该session信息会被写入Zookeeper。 - 其他节点通过watcher监听该...

    zookeeper tar包

    3. **Dubbo**:Dubbo通过Zookeeper实现服务注册与发现,促进服务之间的调用。 4. **HBase**:HBase使用Zookeeper监控RegionServer的状态,处理Region迁移和主Master的选举。 **五、Zookeeper的扩展性与可靠性** ...

    zookeeper-3.4.6.zip

    - **Dubbo**:Dubbo使用Zookeeper作为注册中心,实现服务发现和负载均衡。 总结来说,Zookeeper 3.4.6是分布式系统中不可或缺的组件,它的稳定性和强大的功能为复杂分布式环境提供了有力的支持。通过理解并熟练运用...

    Dubbo30道高频面试题详解.docx

    Dubbo 中的服务注册与发现机制允许服务提供者在启动时将自身服务注册到注册中心,服务消费者则通过注册中心获取服务提供者的地址列表。常见的注册中心包括 ZooKeeper、Eureka、Consul 等。服务提供者和消费者通过...

    alibaba dubbo操作用户指南

    1. 服务注册与发现:Dubbo提供Zookeeper、Eureka等多种服务注册中心,服务提供者启动时会将自己的元数据注册到注册中心,服务消费者则通过注册中心获取服务提供者的地址信息。 2. 负载均衡:Dubbo内置多种负载均衡...

    Dubbo 38道面试题及答案.docx

    - 如果所有注册中心都宕机,服务提供者和消费者仍可通过本地缓存通信,但新服务无法调用。 3. **Dubbo服务负载均衡策略**: - **Random LoadBalance**:随机选择服务提供者,根据权重设置概率,调用越多,分布越...

    Dubbo面试题答案整理1

    - 服务注册层(Registry):负责服务地址的注册和发现,基于URL进行服务的查找和管理。 - 路由层(Cluster):处理多个服务提供者的路由策略,实现负载均衡。 - 监控层(Monitor):监控服务的调用次数和调用时间...

    dubbo入门案例与资料-java

    3. **启动服务提供者**:使用 Dubbo 的 ProviderApplication 启动服务提供者,将服务注册到注册中心。 4. **创建服务消费者**:在消费者项目中引入服务提供者的接口,通过 @Reference 注解注入服务实例。 5. **消费...

    史上最全40道Dubbo面试题!.zip

    7. **什么是服务注册与发现?** 服务提供者将服务地址注册到注册中心,服务消费者从注册中心获取服务地址,实现服务的动态发现。 8. **Dubbo支持哪些协议?** 主要有dubbo、http、hessian、rmi、webservice等,...

Global site tag (gtag.js) - Google Analytics