Dubbo进阶(十二)——dubbo中group和version配置项说明

当一个接口有多种实现时,可以应用group区分。

为什么要用dubbo分组配置?

因为服务器有限,想在同一个注册中心中,分隔测试和开发环境。

那么,分组如何配置?

spring管理bean,先看dubbo的配置:

1、service中的dubbo配置: spring-dubbo.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/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:application name="graservice"/>
 <dubbo:protocol name="dubbo" port="20901"/>
 <!-- 使用zookeeper注册中心暴露服务地址 -->
 <dubbo:registry protocol="zookeeper"
        address="${dubbo.registry.address}"
        register="${dubbo.registry.register}"
 />
 <dubbo:annotation package="com.compony.itoo.gra.facade"/>
 <dubbo:annotation package=" com.compony.itoo.gra.service"/>
 <dubbo:consumer check="false" timeout="3000" group ="${dubbo.gra.group}"/>
 <dubbo:provider timeout="3000" group ="${dubbo.gra.group}"/>

</beans>

dubbo.properties:

dubbo.registry.address=zookeeper://192.168.23.60:2181
dubbo.registry.register=true
dubbo.gra.group=ls

2、web中的dubbo配置: spring-dubbo.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/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配置-start -->
 <dubbo:protocol name="dubbo" port="20900"/>
 <dubbo:application name="graweb"/>
 <dubbo:registry address="${dubbo.registry.address}" />
 <dubbo:consumer check="false" timeout="100000" group ="${dubbo.gra.group}"/>
 <dubbo:annotation/>           <!--开启dubbo注解-->
 <!-- dubbo配置-end -->

</beans>

dubbo.properties

dubbo.registry.address=zookeeper://192.168.23.60:2181
dubbo.gra.group=ls

group分组的设置就如上面红色标注所示:给<dubbo:consumer/><dubbo:provider/> 添加group属性。测试环境和开发环境设置不同的分组值,可以通过组内调用的特性,达到共用注册中心的同时实现环境隔离的效果。同样开发人员本地开发,调试代码,也可以通过使用分组来实现。

先在本地测试,配置好后,启动服务,去dubbo控制台看服务注册情况,显示分组已起作用:
在这里插入图片描述

version

当一个接口的实现,出现不兼容升级时,可以用版本号过渡,版本号不同的服务相互间不引用

<!-- 机器A提供1.0.0版本服务 -->

<dubbo:service interface=“com.foo.BarService” version=“1.0.0” />
<!-- 机器B提供2.0.0版本服务 -->

<dubbo:service interface=“com.foo.BarService” version=“2.0.0” />
<!-- 机器C消费1.0.0版本服务 -->

<dubbo:reference id=“barService” interface=“com.foo.BarService” version=“1.0.0” />
<!-- 机器D消费2.0.0版本服务 -->

<dubbo:reference id=“barService” interface=“com.foo.BarService” version=“2.0.0” />

此外,消费者消费服任意版本的服务时:

<dubbo:reference id=“barService” interface=“com.foo.BarService” version=“*” />

另外,接口升级时,要注意方法:在低压力时间段,先升级一半的提供者为新版本; 再将所有的消费者升级为新版本;然后将剩下的一半提供者升级为新版本;

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 要在配置文件配置Dubbo和Nacos,您需要按照以下步骤进行操作: 1. 在Dubbo配置Nacos注册心: ``` dubbo.registry.address=nacos://${nacos.ip}:${nacos.port} ``` 其`${nacos.ip}`和`${nacos.port}`是Nacos服务器的IP地址和端口号。 2. 在Dubbo配置Nacos配置心: ``` dubbo.config-center.address=nacos://${nacos.ip}:${nacos.port} ``` 3. 在Nacos创建Dubbo服务的配置文件,例如: ``` dataId=${dubbo.application.name}-${dubbo.service.name}-${dubbo.port} group=${dubbo.group} ``` 其`${dubbo.application.name}`是Dubbo应用程序的名称,`${dubbo.service.name}`是Dubbo服务的名称,`${dubbo.port}`是Dubbo服务的端口号,`${dubbo.group}`是Dubbo服务的分组。 4. 在Nacos配置Dubbo服务的参数,例如: ``` dubbo.protocol.name=dubbo dubbo.protocol.port=${dubbo.port} dubbo.registry.address=${dubbo.registry.address} ``` 其`${dubbo.port}`是Dubbo服务的端口号,`${dubbo.registry.address}`是Dubbo服务注册心的地址。 完成上述步骤后,您就可以在Dubbo使用Nacos作为注册心和配置心了。 ### 回答2: 在配置文件配置Dubbo和Nacos的步骤如下: 1. 首先在目的配置文件引入Dubbo和Nacos的相关依赖。 ```java <dependency> <groupId>com.alibaba.boot</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>版本号</version> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>版本号</version> </dependency> ``` 2. 配置Dubbo的属性。 ```yaml spring: dubbo: application: name: 应用名称 registry: address: Nacos注册心的地址 username: Nacos用户名(可选) password: Nacos密码(可选) protocol: name: dubbo port: Dubbo服务的监听端口 ``` 3. 配置Nacos的属性。 ```yaml spring: cloud: nacos: discovery: server-addr: Nacos注册心的地址 username: Nacos用户名(可选) password: Nacos密码(可选) ``` 配置Dubbo和Nacos后,Dubbo作为服务提供者会将自己的服务注册到Nacos上,消费者可以通过Nacos的服务发现功能获取Dubbo提供的服务,并进行调用。 需要注意的是,配置文件的地址、用户名和密码需要根据实际情况进行填写。另外,也可以在代码通过注解的方式配置Dubbo和Nacos,这种方式更加灵活。以上是基本的配置步骤,可以根据具体需求进行更加详细的配置。 ### 回答3: 配置dubbo和nacos的过程如下: 第一步,需在目的配置文件添加dubbo相关的配置,如dubbo的应用名称、注册心地址、协议等。配置文件需要添加如下内容: ``` # dubbo应用名称 dubbo.application.name=your_application_name # dubbo注册心地址 dubbo.registry.address=nacos://your_nacos_address # dubbo协议 dubbo.protocol.name=dubbo dubbo.protocol.port=20880 ``` 第二步,需要配置nacos的相关信息。在配置文件添加nacos相关的配置,如nacos的地址、命名空间等。配置文件需添加如下内容: ``` # nacos地址 nacos.address=your_nacos_address # nacos命名空间 nacos.namespace=your_namespace ``` 配置文件的`your_application_name`是你的dubbo应用名称,可以自定义;`your_nacos_address`是nacos的地址,可以是IP地址和端口号;`your_namespace`是nacos的命名空间,如果没有特殊需求,可以使用默认命名空间。 配置完成后,应用启动时会加载这些配置信息,实现dubbo和nacos的集成。在使用dubbo服务时,会自动向nacos注册提供的服务,并从nacos获取需要调用的服务信息。 通过上述配置dubbo会通过注册心(nacos)来自动发现和调用服务,实现了服务的注册和发现。同时,nacos也会提供服务的配置管理功能,可以实现动态的服务配置。这样,我们就实现了dubbo和nacos的集成配置

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

No Silver Bullet

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值