您的位置:首页 > 编程语言 > Java开发

SpringMVC与Dubbo、zookeeper的整合案例

2018-03-24 10:33 323 查看
Dubbo--zookeeper的配置安装这里就不说了网上很多,上一篇我转载的也有详情介绍
SpringMVC与Dubbo的整合,这边使用的Maven的管理项目在pom文件中导入jar坐标
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>dubbo</artifactId>
    <version>2.5.3</version>
</dependency>
<dependency>
    <groupId>org.apache.zookeeper</groupId>
    <artifactId>zookeeper</artifactId>
    <version>3.4.7</version>
</dependency>
<dependency>
    <groupId>com.github.sgroschupf</groupId>
    <artifactId>zkclient</artifactId>
    <version>0.1</version>
</dependency> <dependency>
    <groupId>com.zgs</groupId>
    <artifactId>zhan-service-api</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>
一.服务及具体实现实现@Service("dubboServiceImpl")public classDubboServiceImplimplementsDubboService {@OverridepublicString dubboTest() {return"dubbo执行了";}}application-dubbo-provider.xml服务提供方配置<?xml version="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context"xmlns:p="http://www.springframework.org/schema/p"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsdhttp://code.alibabatech.com/schema/dubbohttp://code.alibabatech.com/schema/dubbo/dubbo.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsdhttp://www.springframework.org/schema/utilhttp://www.springframework.org/schema/util/spring-util-4.2.xsd"><!-- 配置包扫描器,扫描所有带@Service注解的类 --><context:component-scanbase-package="com.zhan.*"/><!-- 使用dubbo发布服务 4步--><!-- 提供方应用信息 ,这个相当于起一个名字,我们dubbo管理页面比较清晰是哪个应用暴露出来的 --><dubbo:applicationname="dubbo-provide"/><!-- 在zookeeper注册中心 中注册服务 protocol协议Address:地址 多个地址,用逗号 隔开 --><dubbo:registryprotocol="zookeeper"address="localhst:2181"/><!--<dubbo:registry address="N/A" /> 可以在开发时使用下 --><!-- 用dubbo协议 在20880端口暴露服务 --><dubbo:protocolname="dubbo"port="20882"/><!-- 主机端口 <dubbo:protocol host="127.0.0.1" port="20880"/>--><!-- 声明需要暴露的服务接口 --><dubbo:serviceinterface="com.zhan.service.DubboService"ref="dubboService"/></beans>说明:   dubbo:registry 标签一些属性的说明:      1)register是否向此注册中心注册服务,如果设为false,将只订阅,不注册。      2)check注册中心不存在时,是否报错。      3)subscribe是否向此注册中心订阅服务,如果设为false,将只注册,不订阅。      4)timeout注册中心请求超时时间(毫秒)。      5)address可以Zookeeper集群配置,地址可以多个以逗号隔开等。  dubbo:service标签的一些属性说明:     1)interface服务接口的路径     2)ref引用对应的实现类的Bean的ID     3)registry向指定注册中心注册,在多个注册中心时使用,值为<dubbo:registry>的id属性,多个注册中心ID用逗号分隔,如果不想将该服务注册到任何registry,可将值设为N/A     4)register 默认true ,该协议的服务是否注册到注册中心。
二.消费方也要在pom 导入上面的那些jar坐标@Controllerpublic classDubboController {@AutowiredprivateDubboServicedubboService;@RequestMapping("aa")public void dubboTest(){String s =dubboService.dubboTest();System.out.print(s);}}application-dubbo-consumer.xml服务消费方配置<?xml version="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context"xmlns:p="http://www.springframework.org/schema/p"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsdhttp://code.alibabatech.com/schema/dubbohttp://code.alibabatech.com/schema/dubbo/dubbo.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsdhttp://www.springframework.org/schema/utilhttp://www.springframework.org/schema/util/spring-util-4.2.xsd"> <!-- 应用dubbo服务 --><!-- 消费方应用名, 不要和提供方同名,用于计算依赖关系 --><dubbo:applicationname="zhan-consumer"/><!-- 使用zookeeper注册服务中心 发现暴露服务地址--><dubbo:registryprotocol="zookeeper"address="localhst:2181"/><!-- <dubbo:registry address="N/A" /> --><!-- 调用暴露接口:生成远程代理服务对象 和 本地 bean一样 --><dubbo:referenceinterface="com.zhan.service.DubboService"id="dubboService"/><!-- 使用debug调试 会连接超时 check='false' 启动时不校验服务提供方 --><dubbo:consumertimeout="600000"check="false"/></beans>说明:   dubbo:reference 的一些属性的说明:      1)interface调用的服务接口      2)check 启动时检查提供者是否存在,true报错,false忽略      3)registry 从指定注册中心注册获取服务列表,在多个注册中心时使用,值为<dubbo:registry>的id属性,多个注册中心ID用逗号分隔      4)loadbalance 负载均衡策略,可选值:random,roundrobin,leastactive,分别表示:随机,轮循,最少活跃调用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: