什么是dubbo

dubbo是一种分布式服务框架,是高性能和透明化的RPC远程服务调用方案,也是SOA服务治理方案。简单地说:Dubbo就是资源调度和治理中心的管理工具。

dubbo架构

dubbo xml配置多个注册中心 dubbo注册到zk详解_dubbo xml配置多个注册中心


节点角色说明:

  • Provider: 暴露服务的服务提供方。
  • Consumer: 调用远程服务的服务消费方。
  • Registry: 服务注册与发现的注册中心。
  • Monitor: 统计服务的调用次调和调用时间的监控中心。
  • Container: 服务运行容器。

节点角色说明:

  • 服务提供者在启动时,向注册中心注册自己提供的服务。
  • 服务消费者在启动时,向注册中心订阅自己所需的服务。
  • 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
  • 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
  • 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。

使用方法

Dubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置即可,Dubbo基于Spring的Schema扩展进行加载。

<!-- Service配置 -->
    <!-- 使用dubbo发布服务 -->
	<!-- 提供方应用信息,用于计算依赖关系 -->
	<dubbo:registry protocol="zookeeper" address="IP地址:2181" />
	<!-- 用dubbo协议在20880端口暴露服务 -->
	<dubbo:protocol name="dubbo" port="20881" />
	<!-- 声明需要暴露的服务接口,注意ref配置service第一个首字母小写(仔细看service前面x区别) -->
	<dubbo:service interface="cn.xxx.xx.XxxxService" ref="xxxxService" />
<!-- 引用dubbo服务 -->
    <dubbo:registry protocol="zookeeper" address="IP地址:2181"/>
    <!--注意ref配置service第一个首字母小写(仔细看service前面x区别)-->
	<dubbo:reference interface="cn.xxx.xx.XxxxService" id="xxxxService" />

dubbo安装

前提:服务器需要安装tomcat

首先下载dubbo-admin-2.5.4.war安装包

将下载好的安装包放在tomcat的webapps目录中,启动tomcat

访问:http://IP地址:8080/dubbo-admin/

用户名:root

密码:root

如果监控中心和注册中心(zookeeper)在同一台服务器上,可以不需要任何配置。

如果不在同一台服务器,需要修改配置文件:

tomcat中的/webapps/dubbo-admin/WEB-INF/dubbo.properties

dubbo xml配置多个注册中心 dubbo注册到zk详解_dubbo xml配置多个注册中心_02

Zookeeper介绍

注册中心负责服务地址的注册与查找,相当于目录服务,服务提供者和消费者只在启动时与注册中心交互,注册中心不转发请求,压力较小。使用dubbo-2.3.3以上版本,建议使用zookeeper注册中心。
Zookeeper是Apacahe Hadoop的子项目,是一个树型的目录服务,支持变更推送,适合作为Dubbo服务的注册中心,工业强度较高,可用于生产环境,并推荐使用

Zookeeper:
1、可以作为集群的管理工具使用。
2、可以集中管理配置文件。

Zookeeper安装

安装步骤:
第一步:安装jdk
第二步:把zookeeper的压缩包上传到linux系统。
第三步:解压缩压缩包
tar -zxvf zookeeper-3.4.6.tar.gz
第四步:进入zookeeper-3.4.6目录,创建data文件夹。
第五步:进入zookeeper-3.4.6/conf目录,把zoo_sample.cfg改名为zoo.cfg
[root@localhost conf]# cp zoo_sample.cfg zoo.cfg
第六步:修改data属性:dataDir=/root/zookeeper-3.4.6/data
第七步:启动zookeeper
[root@localhost bin]# ./zkServer.sh start
关闭:[root@localhost bin]# ./zkServer.sh stop
查看状态:[root@localhost bin]# ./zkServer.sh status
注意:需要关闭防火墙。