SpringMVC 集成 Dubbo + Zookeeper

Dubbo支持的注册中心有Zookeeper(官方推荐)、Redis、Multicast、Simple,此处使用Zookeeper

测试环境使用Windows系统

第一步,下载Zookeeper:

http://mirrors.hust.edu.cn/apache/zookeeper/

下载后解压如图:

SpringMVC 集成 Dubbo + Zookeeper

创建文件夹newfile(测试取名),然后底下分别再创建data和log文件夹

SpringMVC 集成 Dubbo + Zookeeper

进入conf目录复制zoo_sample.cfg,然后改名为zoo.cfg

SpringMVC 集成 Dubbo + Zookeeper

编辑zoo.cfg添加属性

SpringMVC 集成 Dubbo + Zookeeper

双击zookeeper\bin目录下zkServer.cmd,如出现闪退,编辑zkServer.cmd,在脚本最后添加pause

SpringMVC 集成 Dubbo + Zookeeper

如启动失败,请查看环境变量是否配置了JAVA_HOME

第二步,项目引入dubbo相关jar包

SpringMVC 集成 Dubbo + Zookeeper

第三步,项目配置提供者

创建applicationContext-dubbo-provider.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-provider"/>
    <!-- 连接zookeeper注册中心 127.0.0.1:2181 -->
    <dubbo:registry address="127.0.0.1:2181" protocol="zookeeper"></dubbo:registry>
    <!-- 对外提供服务的端口号  默认20880 -->
    <dubbo:protocol name="dubbo" host="127.0.0.1" port="20880"></dubbo:protocol>
   <!-- 接口对应的实现类 --> 
    <bean id="dubboTestService" class="com.grgbanking.msz.api.impl.DubboTestServiceImpl" /> 
<!-- 对外暴露的接口   ref为接口对应的实现类 --> 
    <dubbo:service interface="com.grgbanking.msz.api.DubboTestService" ref="dubboTestService" />

</beans>

添加spring支持web.xml

SpringMVC 集成 Dubbo + Zookeeper

创建DubboTestService接口类

SpringMVC 集成 Dubbo + Zookeeper

创建DubboTestServiceImpl实现类

SpringMVC 集成 Dubbo + Zookeeper

第四步,项目配置消费者

创建applicationContext-dubbo-consumer.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"/>
    <!-- 使用zookeeper广播注册中心暴露发现服务地址 -->
    <dubbo:registry address="zookeeper://127.0.0.1:2181" />
    <!-- 生成远程服务代理,可以和本地bean一样调用 -->
    <dubbo:reference id="dubboTestService" interface="com.grgbanking.msz.api.DubboTestService" check="false"/>

</beans>

创建消费者接收接口类DubboTestService

SpringMVC 集成 Dubbo + Zookeeper


第五步,添加dubbo-admin监控,可参考

https://www.cnblogs.com/huyong/p/6678475.html

第六步,在消费者Controller调用远程接口

SpringMVC 集成 Dubbo + Zookeeper

SpringMVC 集成 Dubbo + Zookeeper

服务启动顺序依次

zookeeper

dubbo-admin

提供者

消费者

注意:提供者与消费者接口类目录要保持一致,如使用泛型,泛型类需序列化

SpringMVC 集成 Dubbo + Zookeeper