Dubbo zookeeper 初探

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Dubbo zookeeper 初探相关的知识,希望对你有一定的参考价值。

先把zookeeper在本地给安装好,

安装方法参考:http://blog.csdn.net/wxwzy738/article/details/16330253

这里的话讲述了两个工程一个工程是提供服务的,一个工程是调用服务的,因为dubbo是跟spring进行无缝连接的,故功能配置在spring的配置文件中,跟spring进行整合开发

1、工程是以maven进行构建的,使用的jar包如下:

技术分享

2、服务提供者的工程

a、dubbo-demo-api  定义接口

[java] view plain copy

  1. public interface IProcessData {  

  2.     public String deal(String data);  

  3. }  

b、dubbo-demo-provider 服务提供者



[java] view plain copy

  1. public class ProcessDataImpl implements IProcessData {  

  2.   

  3.     /*  

  4.      * @see com.xxx.bubbo.provider.IProcessData#deal(java.lang.String) 

  5.      */  

  6.     @Override  

  7.     public String deal(String data) {  

  8.         try {  

  9.             Thread.sleep(1000);  

  10.         } catch (InterruptedException e) {  

  11.             e.printStackTrace();  

  12.         }  

  13.         return "Finished:" + data;  

  14.     }  

  15. }  


c、applicationProvider.xml配置



[html] view plain copy

  1. <?xml version="1.0" encoding="UTF-8"?>    

  2. <beans xmlns="http://www.springframework.org/schema/beans"    

  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"    

  4.     xsi:schemaLocation="http://www.springframework.org/schema/beans    

  5.         http://www.springframework.org/schema/beans/spring-beans.xsd    

  6.         http://code.alibabatech.com/schema/dubbo    

  7.         http://code.alibabatech.com/schema/dubbo/dubbo.xsd    

  8.         ">    

  9.     

  10.     <!-- Application name -->    

  11.     <dubbo:application name="hello-world-app" />    

  12.     

  13.     <!-- registry address, used for service to register itself -->    

  14.     <dubbo:registry address="zookeeper://127.0.0.1:2181" />    

  15.     

  16.     <!-- expose this service through dubbo protocol, through port 20880 -->    

  17.     <!--    

  18.     <dubbo:protocol name="dubbo" port="20880" />    

  19.         

  20.     <dubbo:protocol name="dubbo" port="9090" server="netty"    

  21.         client="netty" codec="dubbo" serialization="hessian2" charset="UTF-8"    

  22.         threadpool="fixed" threads="100" queues="0" iothreads="9" buffer="8192"    

  23.         accepts="1000" payload="8388608" />    

  24.         -->    

  25.     <!-- Service interface   Concurrent Control  -->    

  26.     <dubbo:service interface="com.huangjie.dubbo_Service.service.IProcessData"    

  27.         ref="demoService" executes="10" />    

  28.     

  29.     <!-- Default Protocol -->    

  30.     <!--   

  31.     <dubbo:protocol server="netty" />   

  32.     -->    

  33.     

  34.     <!-- designate implementation -->    

  35.     <bean id="demoService" class="com.huangjie.dubbo_Service.service.impl.ProcessDataImpl" />    

  36.     

  37. </beans>   


d、启动服务



[java] view plain copy

  1. public class DubboProviderMain {    

  2.     public static void main(String[] args) throws Exception {    

  3.         ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(    

  4.                 new String[]{"applicationProvider.xml"});    

  5.         context.start();  

  6.     

  7.         System.out.println("Press any key to exit.");    

  8.         System.in.read();    

  9.     }    

  10. }   


3、服务调用者的工程


a、调用类


[java] view plain copy

  1. public class ConsumerThd implements Runnable {    

  2.     

  3.     /*   

  4.      * @see java.lang.Runnable#run()  

  5.      */    

  6.     @Override    

  7.     public void run() {  

  8.         ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(    

  9.                 new String[]{"applicationConsumer.xml"});    

  10.         context.start();    

  11.     

  12.         IProcessData demoService = (IProcessData) context.getBean("demoService"); // get    

  13.                                                                                 // service    

  14.                                                                                 // invocation    

  15.         // proxy    

  16.         String hello = demoService.deal("nihao"); // do invoke!    

  17.     

  18.         System.out.println(Thread.currentThread().getName() + " "+hello);    

  19.     }    

  20.       

  21.     public static void main(String[] args) {  

  22.         new Thread(new ConsumerThd()).start();  

  23.         /** 

  24.          * 输出结果: 

  25.          * Thread-0 Finished:nihao 

  26.          */  

  27.     }  

  28. }   


b、applicationConsumer.xml配置



[html] view plain copy

  1. <?xml version="1.0" encoding="UTF-8"?>    

  2. <beans xmlns="http://www.springframework.org/schema/beans"    

  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"    

  4.     xsi:schemaLocation="http://www.springframework.org/schema/beans    

  5.         http://www.springframework.org/schema/beans/spring-beans.xsd    

  6.         http://code.alibabatech.com/schema/dubbo    

  7.         http://code.alibabatech.com/schema/dubbo/dubbo.xsd    

  8.         ">    

  9.     

  10.     <!-- consumer application name -->    

  11.     <dubbo:application name="consumer-of-helloworld-app" />    

  12.     

  13.     <!-- registry address, used for consumer to discover services -->    

  14.     <dubbo:registry address="zookeeper://127.0.0.1:2181" />    

  15.     <dubbo:consumer timeout="5000"/>    

  16.     <!-- which service to consume? -->    

  17.     <dubbo:reference id="demoService" interface="com.huangjie.dubbo_Service.service.IProcessData" />    

  18. </beans>   

4、最后需要把zookeeper的服务给启动,在zookeeper安装文件夹下面的bin目录里面的zkServer.cmd给点击运行。不要关闭窗口,保持服务运行


技术分享
这样整个调用就完成了,这样的好处是只要远程提供ip地址及端口号,以及对外调用的类,客户端就可以调用,客户端不必知道服务端的地址之类的

而且服务端可以开多个zookeeper服务,这样如果其中一个zookeeper 服务死掉了,其他服务还能正常运行

框架/平台构成:
Maven+Springmvc + Mybatis + Shiro(权限)+ Tiles(模板) +ActiveMQ(消息队列) + Rest(服务) + WebService(服务)+ EHcache(缓存) + Quartz(定时调度)+ Html5(支持PC、IOS、Android)

用户权限系统:
组织结构:角色、用户、用户组、组织机构;权限点:页面、方法、按钮、数据权限、分级授权

项目管理新体验
快速出原型系统、组件树、版本控制、模块移植、协同开发、实时监控、发布管理

可持续集成:
所有组件可移植、可定制、可扩充,开发成果不断积累,形成可持续发展的良性循环

支持平台平台: 
Windows XP、Windows 7 、Windows 10 、 Linux 、 Unix

服务器容器:
Tomcat 5/6/7 、Jetty、JBoss、WebSphere 8.5 

技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享

 技术分享

 

技术分享

 

技术分享

 

技术分享

 

技术分享


以上是关于Dubbo zookeeper 初探的主要内容,如果未能解决你的问题,请参考以下文章

Dubbo zookeeper 初探

Dubbo zookeeper 初探

Dubbo zookeeper 初探

Dubbo zookeeper 初探

分布式系统初探-zookeeper&dubbo环境搭建

dubbo框架----初探索-配置