SpringMVC 集成 Dubbo + Zookeeper
Dubbo支持的注册中心有Zookeeper(官方推荐)、Redis、Multicast、Simple,此处使用Zookeeper
测试环境使用Windows系统
第一步,下载Zookeeper:
http://mirrors.hust.edu.cn/apache/zookeeper/
下载后解压如图:
创建文件夹newfile(测试取名),然后底下分别再创建data和log文件夹
进入conf目录复制zoo_sample.cfg,然后改名为zoo.cfg
编辑zoo.cfg添加属性
双击zookeeper\bin目录下zkServer.cmd,如出现闪退,编辑zkServer.cmd,在脚本最后添加pause
如启动失败,请查看环境变量是否配置了JAVA_HOME
第二步,项目引入dubbo相关jar包
第三步,项目配置提供者
创建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
创建DubboTestService接口类
创建DubboTestServiceImpl实现类
第四步,项目配置消费者
创建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
第五步,添加dubbo-admin监控,可参考
https://www.cnblogs.com/huyong/p/6678475.html
第六步,在消费者Controller调用远程接口
服务启动顺序依次
zookeeper
dubbo-admin
提供者
消费者
注意:提供者与消费者接口类目录要保持一致,如使用泛型,泛型类需序列化