Dubbo与Zookeeper、SpringMVC整合和使用
2016-06-17 01:27
573 查看
摘要: Dubbo与Zookeeper、SpringMVC整合和使用
Dubbo与Zookeeper、SpringMVC整合和使用
源码github托管地址:https://github.com/wesley5201314/dubbo
osc码云托管地址:http://git.oschina.net/zhengweishan/dubbo
2、springMVC (maven方式引入,具体参看pom文件)
3、dubbo (maven方式引入,具体参看pom文件)
然后在修改打开E:\dubbo\zookeeper-3.4.8\conf\zoo.cfg,我们这里在指定一下数据目录以及数据日志目录:
启动zookeeper,如下图所示
这里我搭建了五个项目,分别为dubbo(父工程),dubbo-api(这里只有接口,最终会打成jar),dubbo-provider(生产者,最终会打成war),dubbo-service(接口的实现都在这里,最终会被打成jar) ,dubbo_customer(消费者,最终会打成war)。他们之间的引用就请自己看源码吧,不在做更多的解释了。相信你们看到项目的结构也应该懂得他们之间的依赖关系。代码就不全贴了,自己看https://github.com/wesley5201314/dubbo
这里放上两个关键配置文件: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:p="http://www.springframework.org/schema/p"
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
<!-- 提供方应用信息,用于计算依赖关系 -->
<dubbo:application name="test_consumer" />
<!-- 使用zookeeper注册中心暴露服务地址 -->
<dubbo:registry address="zookeeper://127.0.0.1:2181" />
<!-- 声明需要暴露的服务接口 -->
<dubbo:reference interface="com.dubbo.demo.service.TestService" id="testService" check="false" />
</beans>
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:p="http://www.springframework.org/schema/p"
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
<!-- 提供方应用信息,用于计算依赖关系 -->
<dubbo:application name="test_provider" />
<!-- 使用zookeeper注册中心暴露服务地址 -->
<dubbo:registry address="zookeeper://127.0.0.1:2181" />
<!-- 用dubbo协议暴露服务 让他自己制定端口 -->
<dubbo:protocol name="dubbo" />
<!-- 声明需要暴露的服务接口 -->
<dubbo:service interface="com.dubbo.demo.service.TestService" ref="testService" />
<!-- 具体的实现bean -->
<bean id="testService" class="com.dubbo.demo.service.impl.TestServiceImpl" />
</beans>
下载之后直接放到tomcat运行就可以了(这里最好要单独放一个tomcat中)。运行之后如图:
用户密码默认是root,root.
登录之后:
这里显示的服务数,应用数,提供者数,消费者数都为零。因为我们还没有发布服务,好了去我们的开发工具中发布服务吧,生产者,消费者要同事部署,最好部署在不同的tomcat下,修改下tomcat的端口。
项目部署之后,显示如下:
这里的两个应用就是我们的生产者,消费者。
服务(这里的截图可能与源码中的服务名字不一样,提交到github的时候我做了修改,请大家已自己运行的效果为主啊)
应用
提供者
消费者:
然后地址栏输入地址http://localhost:9080/dubbo_web1/testSayDubbo(源码中已经修改项目名字为dubbo_customer,请根据源码来,源码中服务的实现也做了修改,请都以源码为主,这里的都是演示,其实源码也是演示啊)
成功调用我们提供的服务。
OK。至此一切完毕,后续继续说有关dubbo的东西,例如权重的问题:这个你们可以自己试试吧生产者在打包一份,并且修改其中服务的实现,部署到另一台服务器上,在dubbo管理平台设置服务的权重,然后你们不停地刷新消费者应用去掉这个服务,你就可以更具出现的结果,判断调用那个的比较多了。
Dubbo与Zookeeper、SpringMVC整合和使用
源码github托管地址:https://github.com/wesley5201314/dubbo
osc码云托管地址:http://git.oschina.net/zhengweishan/dubbo
一、软件环境
1、zookeeper 下载地址:https://zookeeper.apache.org/releases.html 我下载的版本是 zookeeper-3.4.8(只求稳定)2、springMVC (maven方式引入,具体参看pom文件)
3、dubbo (maven方式引入,具体参看pom文件)
二、配置启动zookeeper
将下载的zookeeper压缩包,解压到一个磁盘目录上去,这里我指定的位置:E:\dubbo\zookeeper-3.4.8,我们可以通过启动E:\dubbo\zookeeper-3.4.8\bin\zkServer.cmd直接启动默认配置,默认端口为2181,首先我们需要把E:\dubbo\zookeeper-3.4.8\conf\zoo_sample.cfg,文件复制一份并修改成zoo.cfg(zookeeper默认加载这个配置文件),然后在修改打开E:\dubbo\zookeeper-3.4.8\conf\zoo.cfg,我们这里在指定一下数据目录以及数据日志目录:
启动zookeeper,如下图所示
三、创建项目
demo源码托管地址:https://github.com/wesley5201314/dubbo这里我搭建了五个项目,分别为dubbo(父工程),dubbo-api(这里只有接口,最终会打成jar),dubbo-provider(生产者,最终会打成war),dubbo-service(接口的实现都在这里,最终会被打成jar) ,dubbo_customer(消费者,最终会打成war)。他们之间的引用就请自己看源码吧,不在做更多的解释了。相信你们看到项目的结构也应该懂得他们之间的依赖关系。代码就不全贴了,自己看https://github.com/wesley5201314/dubbo
这里放上两个关键配置文件: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:p="http://www.springframework.org/schema/p"
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
<!-- 提供方应用信息,用于计算依赖关系 -->
<dubbo:application name="test_consumer" />
<!-- 使用zookeeper注册中心暴露服务地址 -->
<dubbo:registry address="zookeeper://127.0.0.1:2181" />
<!-- 声明需要暴露的服务接口 -->
<dubbo:reference interface="com.dubbo.demo.service.TestService" id="testService" check="false" />
</beans>
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:p="http://www.springframework.org/schema/p"
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
<!-- 提供方应用信息,用于计算依赖关系 -->
<dubbo:application name="test_provider" />
<!-- 使用zookeeper注册中心暴露服务地址 -->
<dubbo:registry address="zookeeper://127.0.0.1:2181" />
<!-- 用dubbo协议暴露服务 让他自己制定端口 -->
<dubbo:protocol name="dubbo" />
<!-- 声明需要暴露的服务接口 -->
<dubbo:service interface="com.dubbo.demo.service.TestService" ref="testService" />
<!-- 具体的实现bean -->
<bean id="testService" class="com.dubbo.demo.service.impl.TestServiceImpl" />
</beans>
四、dubbo管理平台搭建
我这里使用的是dubbo-admin-2.5.3.war,下载地址:http://pan.baidu.com/s/1eSnuqEQ下载之后直接放到tomcat运行就可以了(这里最好要单独放一个tomcat中)。运行之后如图:
用户密码默认是root,root.
登录之后:
这里显示的服务数,应用数,提供者数,消费者数都为零。因为我们还没有发布服务,好了去我们的开发工具中发布服务吧,生产者,消费者要同事部署,最好部署在不同的tomcat下,修改下tomcat的端口。
项目部署之后,显示如下:
这里的两个应用就是我们的生产者,消费者。
服务(这里的截图可能与源码中的服务名字不一样,提交到github的时候我做了修改,请大家已自己运行的效果为主啊)
应用
提供者
消费者:
然后地址栏输入地址http://localhost:9080/dubbo_web1/testSayDubbo(源码中已经修改项目名字为dubbo_customer,请根据源码来,源码中服务的实现也做了修改,请都以源码为主,这里的都是演示,其实源码也是演示啊)
成功调用我们提供的服务。
OK。至此一切完毕,后续继续说有关dubbo的东西,例如权重的问题:这个你们可以自己试试吧生产者在打包一份,并且修改其中服务的实现,部署到另一台服务器上,在dubbo管理平台设置服务的权重,然后你们不停地刷新消费者应用去掉这个服务,你就可以更具出现的结果,判断调用那个的比较多了。
相关文章推荐
- 使用eclipse+Maven部署Servlet3.0Web时的一个问题
- 从Struts2访问web元素理解IOC
- java中的四种引用类型
- No_0616 Java进阶学习——Java注解学习
- Java 可变参数
- Spring Boot
- Web开发笔记(3):Eclipse中调整JSP字体大小
- java实现ssl单/双向认证通信[推荐]
- Java开发中的23种设计模式详解
- Java 7 的7个新特性
- Java类加载原理解析
- java基础二(阅读Head First Java记录)
- 博客第三天-java基础简介
- java heap dump
- SpringMVC 中设置日期字符串转换格式
- Please allow Subclipse team to receive的弹窗问题
- Struts2基础--Struts2(你必须要懂得基础)
- Spring MVC
- spring 对于环境迁移的问题(待完善)
- 配置Eclipse java 项目