简介
DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点
1.官方网站:http://dubbo.io/
2.下载: 源码-https://github.com/alibaba/dubbo 仓库-http://repo1.maven.org/maven2/com/alibaba/dubbo
入门
1.配置dubbo依赖jar包:dubbo-2.5.3.jar
2服务端:
2.1引入dubbo命名空间:
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xsi:schemaLocation="http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
2.2配置当前应用名称:<dubbo:application name="xxx-admin-service"/>
2.3配置服务注册中心:<dubbo:registry address="multicast://224.5.6.7:1234" />
2.4配置暴露服务的协议与端口:<dubbo:protocol name="dubbo" port="20880"/>
2.5配置暴露服务:<dubbo:service interface="com.xxx.admin.service.TestService" ref="testServiceImpl"/>
3.消费端:
3.1引入dubbo命名空间:
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xsi:schemaLocation="http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
3.2配置当前应用名称:<dubbo:application name="xxx-admin-web"/>
3.3配置服务注册中心:<dubbo:registry address="multicast://224.5.6.7:1234" />
3.4配置引用服务:<dubbo:reference interface="com.xxx.admin.service.TestService" id="testService" timeout="3000"/>
暴露服务
1注册中心暴露服务(有注册中心):
1.1Multicast注册中心(广播,-不推荐):
1.1.1说明
不需要启动任何中心节点,只要广播地址一样,就可以互相发现,广播受网络结构限制,只适合小规模应用或开发阶段使用。广播地址段: 224.0.0.0 - 239.255.255.255
1.1.2两种配置方式
1<dubbo:registry address="multicast://224.5.6.7:1234" />
2 <dubbo:registry protocol="multicast" address="224.5.6.7:1234" />
protocol 协议 multicast
address 广播地址 ip地址:224.5.6.7 ip地址:端口 224.5.6.7:1234
1.1.3注意:依赖于网络拓普和路由,跨机房有风险 , 小规模应用或开发测试环境,正试环境建议使用dubbo-2.3.3以上版本的zookeeper注册中心。
1.2Zookeeper注册中心(推荐):
1.2.1说明
Zookeeper 分布式协调服务框架是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。Zookeeper 的典型的应用场景(配置文件的管理、集群管理、同步锁、Leader 选举、队列管理等)
1.2.2下载与安装Zookeeper
下载zookeeper-3.4.8.tar.gz http://www.apache.org/dyn/closer.cgi/zookeeper/
在linux系统中安装zookeeper
1.2.3配置jar依赖
zookeeper-3.4.8.jar 依赖netty-3.7.0.Final.jar
zkclient-0.1.jar ZKClient是Datameer开源的一个Zookeeper客户端实现,以提升zookeeper客户端的健状性
1.24Zookeeper配置
<dubbo:registry address="zookeeper://192.168.12.168:2181"/>
<dubbo:registry protocol="zookeeper" address="192.168.12.168:2181"/>
protocol 协议 zookeeper
address 服务地址 ip地址 192.168.12.128 ip地址:端口 192.168.12.128:2181
192.168.12.128192.168.12.128
1.25服务端
<!-- ########## dubbo分布式服务配置(服务端) ############ -->
<!-- 配置当前应用名称 -->
<dubbo:application name="xxx-admin-service"/>
<!-- zookeeper注册中心 -->
<dubbo:registry protocol="zookeeper" address="192.168.12.128:2181"/>
<!--
配置暴露服务的协议 与 端口号
name : 指定协议名 dubbo
port : 指定端口号 20880
-->
<dubbo:protocol name="dubbo" port="20880"/>
<!-- 配置暴露服务 -->
<dubbo:service interface="com.xxx.admin.service.TestService" ref="testServiceImpl"/>
1.26客户端
<!-- ######### dubbo分布式配置(客户端) ########## -->
<!-- 配置当前应用名称-->
<dubbo:application name="xxx-admin-web"/>
<!-- zookeeper注册中心 -->
<dubbo:registry protocol="zookeeper" address="192.168.12.128:2181"/>
<!--引用服务配置 -->
<dubbo:reference interface="com.xxx.admin.service.TestService"id="testService" timeout="60000"/>
2只暴露服务(没有注册中心,直连方式):
2.1.5服务端
<dubbo:registry address="N/A" /> 说明:N/A (Not Applicable) 不可用,也就是说注册中心不可能
2.1.6客户端
<!-- ############# dubbo分布式服务配置(客户端) ############### --><!-- 配置当前应用名称 -->
<dubbo:application name="xxx-admin-web"/>
<!-- 配置引用服务(直连形式) -->
<dubbo:reference interface="com.xxx.admin.service.TestService"id="testService"
timeout="60000" url="dubbo://127.0.0.1:20880"/>
dubbo命名空间
1.<dubbo:application /> 配置当前应用名称: name:指定应用名称
2.<dubbo:registry /> 配置注册中心:address:指定服务地址
3.<dubbo:protocol /> 配置服务协议与端口:
1.name : 指定协议名:
1.1dubbo
采用NIO复用单一长连接,并使用线程池并发处理请求,减少握手和加大并发效率,性能较好(推荐使用)
1.2 rmi
可与原生RMI互操作,基于TCP协议
RMI(即Remote Method Invoke 远程方法调用
1.3hessian (可与原生Hessian互操作,基于HTTP协议 )
Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能。 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据
2.port : 指定端口号 20880
4.<dubbo:service /> 配置暴露服务:
1.registry 注册方式 2.interface 服务接口 3.ref 引用容器中存在的服务接口实现类
5.<dubbo:reference /> 配置引用服务: (interface 服务接口)
1.id 指定bean的id 2.timeout 设置连接超时最长时间,默认是3秒 3.url 设置直连时服务请求地址 url="dubbo://127.0.0.1:20880"
dubbo监控中心monitor
1.安装tomcat部署dubbo-admin-2.5.4.war
1. 安装tomcat
cd /usr/local
mkdir web && cd web
使用rz 上传apache-tomcat-7.0.76.tar.gz
tar -zxvf apache-tomcat-7.0.76.tar.gz
2. 上传dubbo-admin监听应用
#重命名
mv apache-tomcat-7.0.76 tomcat-dubbo-monitor
cd tomcat-dubbo-monitor/webapps
rm -rf *
mkdir ROOT && cd ROOT
使用rz 上传dubbo-admin-2.5.4.war
unzip dubbo-admin-2.5.4.war
rm -f dubbo-admin-2.5.4.war
2.修改 WEB-INF/dubbo.properties属性文件
1. 修改WEB-INF/dubbo.properties属性文件:
cd WEB-INF
vim dubbo.properties
dubbo.registry.address=zookeeper://127.0.0.1:2181
说明:为注册中心的实际地址(若注册中心和监控中心在同一台机器则上述地址可以不用修改了)
2. 启动tomcat
cd /usr/local/web/tomcat-dubbo-monitor/bin
./startup.sh
3. 访问应用
http://192.168.12.128:8080
用户名:root 密码:root