文档章节

Dubbo zookeeper 初探【转】

 如何让他和
发布于 2016/11/04 14:26
字数 834
阅读 102
收藏 1

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

先把zookeeper在本地给安装好,

这里的话讲述了两个工程一个工程是提供服务的,一个工程是调用服务的,因为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 

JEESZ通用版本分布式模块化开发平台 - zookeeperflume - zookeeperflume的博客

 

JEESZ通用版本分布式模块化开发平台 - zookeeperflume - zookeeperflume的博客

 

JEESZ通用版本分布式模块化开发平台 - zookeeperflume - zookeeperflume的博客

 

JEESZ通用版本分布式模块化开发平台 - zookeeperflume - zookeeperflume的博客

 

JEESZ通用版本分布式模块化开发平台 - zookeeperflume - zookeeperflume的博客

 

JEESZ通用版本分布式模块化开发平台 - zookeeperflume - zookeeperflume的博客

 

JEESZ通用版本分布式模块化开发平台 - zookeeperflume - zookeeperflume的博客

 

JEESZ通用版本分布式模块化开发平台 - zookeeperflume - zookeeperflume的博客

 JEESZ通用版本分布式模块化开发平台 - zookeeperflume - zookeeperflume的博客

 

JEESZ通用版本分布式模块化开发平台 - zookeeperflume - zookeeperflume的博客

 

JEESZ通用版本分布式模块化开发平台 - zookeeperflume - zookeeperflume的博客

 

JEESZ通用版本分布式模块化开发平台 - zookeeperflume - zookeeperflume的博客

 

JEESZ通用版本分布式模块化开发平台 - zookeeperflume - zookeeperflume的博客

 

JEESZ通用版本分布式模块化开发平台 - zookeeperflume - zookeeperflume的博客

 

JEESZ通用版本分布式模块化开发平台 - zookeeperflume - zookeeperflume的博客

 

JEESZ通用版本分布式模块化开发平台 - zookeeperflume - zookeeperflume的博客

 

JEESZ通用版本分布式模块化开发平台 - zookeeperflume - zookeeperflume的博客

 

JEESZ通用版本分布式模块化开发平台 - zookeeperflume - zookeeperflume的博客

 JEESZ通用版本分布式模块化开发平台 - zookeeperflume - zookeeperflume的博客

 

JEESZ通用版本分布式模块化开发平台 - zookeeperflume - zookeeperflume的博客

 

JEESZ通用版本分布式模块化开发平台 - zookeeperflume - zookeeperflume的博客

 

JEESZ通用版本分布式模块化开发平台 - zookeeperflume - zookeeperflume的博客

 

JEESZ通用版本分布式模块化开发平台 - zookeeperflume - zookeeperflume的博客

 

JEESZ通用版本分布式模块化开发平台 - zookeeperflume - zookeeperflume的博客

 

JEESZ通用版本分布式模块化开发平台 - zookeeperflume - zookeeperflume的博客

 

JEESZ通用版本分布式模块化开发平台 - zookeeperflume - zookeeperflume的博客

 

JEESZ通用版本分布式模块化开发平台 - zookeeperflume - zookeeperflume的博客

 

JEESZ通用版本分布式模块化开发平台 - zookeeperflume - zookeeperflume的博客

 JEESZ通用版本分布式模块化开发平台 - zookeeperflume - zookeeperflume的博客

 

JEESZ通用版本分布式模块化开发平台 - zookeeperflume - zookeeperflume的博客

 

JEESZ通用版本分布式模块化开发平台 - zookeeperflume - zookeeperflume的博客

 

JEESZ通用版本分布式模块化开发平台 - zookeeperflume - zookeeperflume的博客

 

JEESZ通用版本分布式模块化开发平台 - zookeeperflume - zookeeperflume的博客

 

JEESZ通用版本分布式模块化开发平台 - zookeeperflume - zookeeperflume的博客

 

JEESZ通用版本分布式模块化开发平台 - zookeeperflume - zookeeperflume的博客

 

JEESZ通用版本分布式模块化开发平台 - zookeeperflume - zookeeperflume的博客

 

JEESZ通用版本分布式模块化开发平台 - zookeeperflume - zookeeperflume的博客

 

JEESZ通用版本分布式模块化开发平台 - zookeeperflume - zookeeperflume的博客

 JEESZ通用版本分布式模块化开发平台 - zookeeperflume - zookeeperflume的博客

 

JEESZ通用版本分布式模块化开发平台 - zookeeperflume - zookeeperflume的博客

 

JEESZ通用版本分布式模块化开发平台 - zookeeperflume - zookeeperflume的博客

 

JEESZ通用版本分布式模块化开发平台 - zookeeperflume - zookeeperflume的博客

 

JEESZ通用版本分布式模块化开发平台 - zookeeperflume - zookeeperflume的博客

© 著作权归作者所有

粉丝 38
博文 72
码字总数 147957
作品 0
深圳
私信 提问
加载中

评论(1)

如何让他和 博主
Zookeeper分布式集群安装与配置(CentOS6)

Zk是一个分布式服务框架,提供了协调分布式应用的基本服务,zk集群主要是保证服务的可靠性和稳定性,介绍一下集群的安装与配置,在安装之前需要安装好jdk,jdk的安装请网上查找相应的方法 Du...

chaun
2015/08/14
208
0
dubbo(2.5.3版本) provider服务运行正常,但ZooKeeper(3.4.11版本)注册中心/dubbo/{接口名}/providers节点无子节点

概述 具体原因:因为ZooKeeper数据不一致导致 修复操作:修改ZooKeeper配置如下,删除ZooKeeper所有数据、重启ZooKeeper后,重启所有dubbo providers/consumers服务。 一段时间后,未出现此类...

安小乐
09/02
65
0
zookeeper、dubbo、kafka随笔

1 zookeeper如何实现高可用 1 zookeeper 多台构成集群实现高可用,有三种角色群首(leader),追随者(follower),观察者(observer)。 Leader作为整个ZooKeeper集群的主节点,负责响应所有...

独一无二zz
2018/06/28
0
0
服务化改造实践(一)| Dubbo + ZooKeeper

“没有最好的技术,只有最合适的技术。”我想这句话也同样适用于微服务领域,没有最好的服务框架,只有最适合自己的服务改造。在 Dubbo 的未来规划中,除了保持自身技术上的领先性,关注性能...

中间件小哥
2018/08/16
0
0
《Zookeeper--Windows单机安装》

《Zookeeper--Windows单机安装》 Zookeeper作为Dubbo服务的注册中心,Zookeeper一个分布式的服务框架,是树型的目录服务的数据存储,能做到集群管理数据 ,这里能很好的作为Dubbo服务的注册中...

爱笑的我们
2018/05/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

003-ES集群

ES 集群 详情: https://my.oschina.net/u/3635512/blog/3140294 将实验机器/etc/elasticsearch/elasticsearch.yml 中配置文件改为 cluster.name: myes   #ES集群名称node.name:......

伟大源于勇敢的开始
15分钟前
4
0
法国电力项目二期正式验收

2019年12月10日, 法国电力项目二期正式验收 并就未来的合作技术方向进行了探讨: 去中心化数据存储/搜索引擎 可信计算/零知识证明 能源虚拟机改造 出席的人有: 法国电力总部 CIO&CTO Step...

怎当她临去时秋波那一转
31分钟前
2
0
谷歌助手

参照: https://www.mxblog.com.cn/mac%E7%89%88chrome%E6%B5%8F%E8%A7%88%E5%99%A8%E5%AE%89%E8%A3%85%E8%B0%B7%E6%AD%8C%E8%AE%BF%E9%97%AE%E5%8A%A9%E6%89%8B.html......

T型人才追梦者
39分钟前
5
0
索引延迟关联

前言 今天在看代码的时候学习到了一种索引的优化,就先在此记录下来。 具体 举个例子,原sql如下: SELECT * FROM TABLE WHERE INDEX = '' LIMIT 10000, 10; 现象 就算INDEX用了查询索引,...

无敌小杰杰
今天
5
0
tomcat_jdk安装,安装zrlog,nginx代理tomcat,第二个java应用

tomcat_jdk安装 要跑tomcat 首先要安装 jdk jdk 有两个版本 一个是 open jdk,一个是 oracle jdk open jdk 是 oracle jdk 的开源版本 两个版本都可以使用 这次实验先使用 open jdk 来做 如果...

doomcat
今天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部