Springmvc整合dubbo 使用学习(dubbo开发中使用到的一些服务配...
通过之前的学习了解了dubbo的常规的使用,下面我们看看特殊情况或者说真实环境下使用dubbo的一些配置实例。一、一个接口有多个实现时可以使用group来区分1、服务提供者配置view plain 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
[*] ">
[*] <!-- 提供方应用信息,用于计算依赖关系,这个和client没必要一致 -->
[*] <dubbo:application name="hello-world-app-my" />
[*] <!-- 使用zookeeper广播注册中心暴露服务地址 -->
[*] <dubbo:registryprotocol="zookeeper"address="192.168.0.107:2181"/>
[*] <!-- 用dubbo协议在20880端口暴露服务 -->
[*] <dubbo:protocol name="dubbo" port="20880" />
[*] <!-- 声明需要暴露的服务接口 -->
[*] <dubbo:servicegroup="1" interface="com.test.dubboser.ServiceDemo"
[*] ref="demoService" />
[*] <dubbo:service group="2" interface="com.test.dubboser.ServiceDemo"
[*] ref="demoService2" />
[*] <!--和本地bean一样实现服务 -->
[*] <bean id="demoService"class="com.test.dubboser.ServiceImp"/>
[*] <bean id="demoService2" class="com.test.dubboser.ServiceImp2"/>
[*]</beans>
其他的配置都是一样,而暴露的服务接口通过group来区分两个实现类
2、服务消费者配置
view plain 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
[*] ">
[*] <!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 -->
[*] <dubbo:application name="consumer-of-helloworld-app-my" />
[*] <!-- 使用zookeeper广播注册中心暴露发现服务地址 -->
[*] <dubbo:registryprotocol="zookeeper"address="192.168.0.107:2181" />
[*] <!-- 生成远程服务代理,可以和本地bean一样使用demoService -->
[*] <dubbo:reference id="demoServicemy" group="1" interface="com.test.dubboser.ServiceDemo" />
[*] <dubbo:reference id="demoServicemy2" group="2" interface="com.test.dubboser.ServiceDemo" />
[*]</beans>
这里同样使用group来区分
二、当一个接口实现出现不兼容升级时可以用版本号过渡,版本号不同的服务互相间不引用1、服务提供者配置
view plain 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
[*] ">
[*] <!-- 提供方应用信息,用于计算依赖关系,这个和client没必要一致 -->
[*] <dubbo:application name="hello-world-app-my" />
[*] <!-- 使用zookeeper广播注册中心暴露服务地址 -->
[*] <dubbo:registryprotocol="zookeeper"address="192.168.0.107:2181"/>
[*] <!-- 用dubbo协议在20880端口暴露服务 -->
[*] <dubbo:protocol name="dubbo" port="20880" />
[*] <!-- 声明需要暴露的服务接口 -->
[*] <dubbo:serviceversion="1" interface="com.test.dubboser.ServiceDemo"
[*] ref="demoService" />
[*] <dubbo:service version="2" interface="com.test.dubboser.ServiceDemo"
[*] ref="demoService2" />
[*] <!--和本地bean一样实现服务 -->
[*] <bean id="demoService"class="com.test.dubboser.ServiceImp"/>
[*] <bean id="demoService2" class="com.test.dubboser.ServiceImp2"/>
[*]</beans>
添加version 来区分2、服务消费者配置
view plain 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
[*] ">
[*] <!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 -->
[*] <dubbo:application name="consumer-of-helloworld-app-my" />
[*] <!-- 使用zookeeper广播注册中心暴露发现服务地址 -->
[*] <dubbo:registryprotocol="zookeeper"address="192.168.0.107:2181" />
[*] <!-- 生成远程服务代理,可以和本地bean一样使用demoService -->
[*] <dubbo:reference id="demoServicemy" version="1" interface="com.test.dubboser.ServiceDemo" />
[*] <dubbo:reference id="demoServicemy2" version="2" interface="com.test.dubboser.ServiceDemo" />
[*]</beans>
服务消费者这边也要使用version 来区分经典介绍:源码结构http://upload-images.jianshu.io/upload_images/5712789-bf9a2905957020a5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240
愿意了解框架技术或者源码的朋友直接求求交流分享技术:2042849237分布式的一些解决方案,有愿意了解的朋友可以找我们团队探讨更多详细源码参考来源:http://minglisoft.cn/technology
dubbo+springmvc+mybatis+ehcache+redis J2ee分布式架构, restful, kafka, shiro
标签: dubbo+springmvc+mybatis+ehcache+redis J2ee分布式架构, restful, kafka, shiro
页:
[1]