系统间通信解决方案——Dubbo+Zookeeper实现服务间通信

系统间通讯的解决方案:

  实现表现层和服务层间、不同服务不同系统间的远程通讯,多对多的调用关系

  1. 一种方案是WebService,基于soap协议,效率不高
  2. 一种是使用restful形式的服务,http+json,中小型项目常用,工程太大的话调用关系混乱
  3. Dubbo,使用RPC协议进行远程调用,直接使用socket通信。传输效率高,并可以统计出系统之间的调用关系、调用次数。
  4. 使用SpringCloud的集成解决方案

Dubbo的架构节点:

服务的提供者provider

服务的消费者consumer

注册中心register  为消费者提供匹配服务,从而使消费者获取服务的ip和端口号然后向服务提供者调用服务(使用zookeeper注册中心,zookeeper在大数据中也可以作为集群管理工具

监控中心Monitor  统计服务的调用次数和调用时间的监控中心

Zookeeper:

  Zookeeper可作为服务的注册中心、也可在大数据中作为集群管理工具

安装Zookeeper,并启动

Zookeeper的安装:

第一步:安装jdk

第二步:解压缩zookeeper压缩包

[root@izvluy1jk36n8jz /]# tar zxf zookeeper-3.4.12.tar.gz

查看

[root@izvluy1jk36n8jz /]# ll

进入目录

[root@izvluy1jk36n8jz /]# cd zookeeper-3.4.12

创建data文件夹目录

第三步:将conf文件夹下zoo_sample.cfg复制一份,改名为zoo.cfg

进入conf目录

[root@izvluy1jk36n8jz zookeeper-3.4.12]# cd conf

修改名字 

[root@izvluy1jk36n8jz conf]# mv zoo_sample.cfg  zoo.cfg

第四步:修改配置dataDir属性,指定一个真实目录

Vim进入编辑,然后:wq保存

第五步:

启动zookeeper:bin/zkServer.sh start

关闭zookeeper:bin/zkServer.sh stop

查看zookeeper状态:bin/zkServer.sh status

 

[root@izvluy1jk36n8jz zookeeper-3.4.12]# cd bin

[root@izvluy1jk36n8jz bin]# ./zkServer.sh start

ZooKeeper JMX enabled by default

Using config: /zookeeper-3.4.12/bin/../conf/zoo.cfg

Starting zookeeper ... STARTED

[root@izvluy1jk36n8jz bin]#

Dubbo发布服务



<dubbo:application name="taotao-manager" />

<dubbo:registry protocol="zookeeper" address="120.78.89.177:2181" />

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

<dubbo:service interface="com.taotao.service.ItemService" ref="itemServiceImpl" timeout="300000"/>

引用服务


<dubbo:application name="taotao-manager-web"/>
<dubbo:registry protocol="zookeeper" address="120.78.89.177:2181"/>
<dubbo:reference interface="com.taotao.service.ItemService" id="itemService" />

 

你可能感兴趣的:(开发笔记)