dubbo-consumer.xml配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<!-- 添加 DUBBO SCHEMA -->
<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="dubbodemo-provider"/>
<!-- 连接到哪个本地注册中心 -->
<dubbo:registry id="dubbodemo" address="zookeeper://localhost:2181"/>
<dubbo:registry id="dubbodemo_copy" address="zookeeper://localhost:2182"/>
<!-- 用dubbo协议在20880端口暴露服务 -->
<dubbo:protocol name="dubbo" port="28080"/>
<!-- 声明需要暴露的服务接口 -->
<dubbo:service registry="dubbodemo" timeout="3000" interface="com.chanshuyi.service.IUserService" ref="userService"/>
<dubbo:service registry="dubbodemo_copy" timeout="3000" interface="com.chanshuyi.service.IBookService" ref="bookService"/>
</beans>
第 13、14 行分别声明了一个 id 为 “dubbodemo”、“dubbodemo_copy”的注册中心,分别对应本地机器的 2181 和 2182 端口。
第 18 行暴漏了 IUserService 接口并显式指定将其注册到 dubbodemo 注册中心。
第 19 行暴漏了 IBookService 接口并显示指定将其注册到 dubbodemo_copy 注册中心。
如果在暴漏接口的时候没有指定注册到哪个注册中心,那么它会默认注册到所有的注册中心。
到这里,配置完成。下面将模拟多个注册中心,并启动服务。
自己的实例:
<?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"
default-lazy-init="false">
<!-- 提供方应用信息,用于计算依赖关系 -->
<!-- 使用zookeeper广播注册中心暴露服务地址 -->
<dubbo:application name="baofu-admin"/>
<dubbo:consumer timeout="10000" check="false"/>
<!-- 连接到哪个本地注册中心 -->
<dubbo:registry id="default" default="true" protocol="zookeeper" address="${zookeeper.server.address}" timeout="10000"/>
<dubbo:registry id="cloudMember" protocol="zookeeper" address="${zookeeper.member.address}" timeout="10000"/>
<!--监控-->
<dubbo:monitor protocol="registry"/>
<!--发送短信-->
<dubbo:reference interface="com.baofoo.sms.facade.SmsFacade" id="smsFacade" check="false"/>
</beans>
<!--客户信息查询-->
<dubbo:reference id="customerInfoQueryFacade"
interface="com....CustomerInfoQueryFacade"
registry="cloudMember"
retries="3"
timeout="60000"/>
<dubbo:registry id="default" default="true" protocol="zookeeper" address="${zookeeper.server.address}" timeout="10000"/>指:注册中心id="default" default="true" 下面的接口如果不写 registry指定注册中心的id 那就默认是default的注册中心
<dubbo:registry id="cloudMember" protocol="zookeeper" address="${zookeeper.member.address}" timeout="10000"/>指:注册中心id="cloudMember"的注册中心