Dubbo单体服务间调用(without 注册中心)
1.需求
在一些场景下我们使用dubbo进行服务间调用是不需要使用注册中心的,针对这种需求dubbo也做了相应的处理,
下面通过一个demo演示如何实现。
2.实现
- 定义UserService接口
List<String> getUsers();
String sayHello(String name);
- 改变注册方式
生产者:
<?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-admin 或 dubbo-monitor 会显示这个名字,方便辨识-->
<dubbo:application name="dubbo-provider" />
<!--使用 zookeeper 注册中心暴露服务,注意要先开启 zookeeper 不需要注册中心则使用N/A-->
<dubbo:registry address="N/A"/>
<!-- 用dubbo协议在20880端口暴露服务 -->
<dubbo:protocol name="dubbo" port="20880" host="192.168.2.178" />
<!--使用 dubbo 协议实现定义好的 api.PermissionService 接口-->
<dubbo:service interface="com.eggsl.service.UserService" ref="userService" />
<!--具体实现该接口的 bean-->
<bean id="userService" class="com.eggsl.service.impl.UserServiceImpl"/>
</beans>
消费者:
<?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" />
<!--向 zookeeper 订阅 provider 的地址,由 zookeeper 定时推送-->
<dubbo:registry address="N/A"/>
<!--使用 dubbo 协议调用定义好的 api.PermissionService 接口-->
<dubbo:reference id="userService" interface="com.eggsl.service.UserService" url="dubbo://192.168.2.178:20880/com.eggsl.service.UserService"/>
</beans>
-
结果如图
项目地址:
https://gitee.com/ayiba/dubbo-learning
版权声明:本文为daxiang52原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。