原文地址: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控制台看
生产