[dubbo] 浅谈dubbo-分组使用

原文地址:https://blog.csdn.net/kwy15732621629/article/details/79129544

前言

公司服务器全部宕机了.两三天之内修不好, 那咋整,所有项目不能停了啊.所以就先买了一台将就着用.只有一台,要跑起来那么多服务,所以我就坚持着能省就省.只有一台zk和dubbo服务器,通过dubbo的group来实现隔离环境. 当然dubbo的group本意不应该怎么用的.

使用

我们先来瞅瞅dubbo group 本意应该咋用.

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

<dubbo:service group="feedback" interface="com.xxx.IndexService" /> <dubbo:service group="member" interface="com.xxx.IndexService" />
<dubbo:reference id="feedbackIndexService" group="feedback" interface="com.xxx.IndexService" /> <dubbo:reference id="memberIndexService" group="member" interface="com.xxx.IndexService" />

任意组 (2.2.0以上版本支持,总是只调用一个可用组的实现)

<dubbo:reference id="barService" interface="com.foo.BarService" group="*" />

我们实际上只是为了区分开发/ 测试/环境

那么我们怎么配置的

先来看dubbo配置

server端

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="achievementservice"/>
 
    <dubbo:protocol name="dubbo" port="20887"/>
 
    <!-- 使用zookeeper注册中心暴露服务地址 -->
    <dubbo:registry protocol="zookeeper" address="${dubbo.registry.address}" register="${dubbo.registry.register}"/>
 
    <dubbo:annotation package="com.dmsdbj.itoo.achievement.facade"/>
    <dubbo:annotation package="com.dmsdbj.itoo.achievement.service"/>
 
    <dubbo:provider timeout="3000" group ="${dubbo.achievement.group}"/>
    <dubbo:consumer check="false" timeout="3000" group ="${dubbo.achievement.group}"/>
	
    <dubbo:reference id="studentScoreDetailFacade" interface="com.dmsdbj.itoo.examinationEvaluation.facade.StudentScoreDetailFacade">
        <dubbo:method name="queryNotAutoJudeMainsDetails" timeout="10000"/>
    </dubbo:reference>
</beans>

dubbo.server

dubbo.registry.address=zookeeper://192.168.22.60:2181
dubbo.achievement.group=local
dubbo.achievement.version=1.0.0
dubbo.registry.register=true

web端

spring-dubbo.xml

<!-- dubbo配置-start -->
  <dubbo:application name="achievementweb"/>
  <dubbo:protocol name="dubbo" port="20886"></dubbo:protocol>
  <dubbo:registry address="${dubbo.registry.address}"/>
  <dubbo:annotation/>
  <dubbo:consumer check="false" timeout="5000" group ="${dubbo.achievement.group}"/>
<!-- dubbo配置-end -->

dubbo-serve.properties配置

## local
dubbo.registry.address=zookeeper://192.168.22.60:2181
dubbo.achievement.group=local
dubbo.achievement.version=1.0.0

本地配置好了之后,我们去dubbo控制台看

生产

猜你喜欢

转载自blog.csdn.net/qq_19734597/article/details/81268742