dubbo的group分组

mac2024-11-21  34

在dubbo中,当一个注册中心要注册2个相同的接口实现时,比如读写分离的接口,或者开发环境和测试环境用同一个注册中心时,可以使用group配置实现相同的接口注册。 例如下:

1. 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="dubbo-consumer" /> <dubbo:registry address="zookeeper://127.0.0.1:2181" /> <dubbo:consumer check="false" /> <dubbo:reference id="userServiceOne" interface="com.UserService" group="userServiceOne" check="false"/> <dubbo:reference id="userServiceTwo" interface="com.UserService" group="userServiceTwo" check="false"/> </beans>

2.dubbo服务分组配置

<?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="dubbo-provider"/> <dubbo:registry address="zookeeper://127.0.0.1:2181"/> <dubbo:provider cluster="failfast"/> <dubbo:protocol name="dubbo" port="20880" /> <dubbo:service interface="com.UserService" ref="userServiceOne" protocol="dubbo" group="userServiceOne"/> <dubbo:service interface="com.UserService" ref="userServiceTwo" protocol="dubbo" group="userServiceTwo"/> <bean id="userServiceOne" class="com.dubbo.provider.service.impl.UserServiceOneImpl"/> <bean id="userServiceTwo" class="com.dubbo.provider.service.impl.UserServiceTwoImpl"/> </beans>

3.测试代码

package com.test; import com.UserService; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("classpath:dubbo-consumer.xml") public class Test { @Autowired private UserService userServiceOne; @Autowired private UserService userServiceTwo; @org.junit.Test public void consumerTest(){ System.out.println(userServiceOne.sayHello("ly")); System.out.println(userServiceTwo.sayHello("ly")); } }

4.源代码下载

https://github.com/haozhi-ly/dubbo-demo

最新回复(0)