-
概述
Dubbo是一个开源的分布式服务框架,主要用于提供一个RPC远程调用方案,它的核心功能包括:
Remoting:远程通信基础,提供对多种NIO框架抽象封装,包括同步转异步和请求-响应模式的信息交换方式
Cluster:服务框架核心,提供基于接口方法的远程过程调用,包括多协议支持,并提供软负载均衡和容错机制的集群支持
Registry:服务注册中心,使服务消费方能动态地查找服务提供方,使地址透明,使服务提供方可以平滑增加或减少机器 -
使用dubbo的简单例子
包括如何下载dubbo源代码,如何编译,如何写配置文件,如何起dubbo注册和监控中心
本文选取的例子来自于https://github.com/alibaba/dubbo
(1) 如何下载dubbo源代码
我的工作台用的是cygwin,是一个在windows平台上运行的类UNIX模拟环境,安装了git命令
[WangKun@Alibaba codes] $ git clone https://github.com/alibaba/dubbo.git dubboDemo
正克隆到 'dubboDemo'...
remote: Counting objects: 43455, done.
remote: Compressing objects: 100% (215/215), done.
remote: Total 43455 (delta 56), reused 156 (delta 16)
接收对象中: 100% (43455/43455), 9.16 MiB | 693.00 KiB/s, 完成.
处理 delta 中: 100% (12177/12177), 完成.
检查连接... 完成。
正在检出文件: 100% (1692/1692), 完成.
[WangKun@Alibaba codes] $ cd dubboDemo/
[WangKun@Alibaba dubboDemo] $ git checkout master
已经位于 'master'
您的分支与上游分支 'origin/master' 一致。
(2) 编译安装包
[WangKun@Alibaba dubboDemo] $ mvn clean install -Dmaven.test.skip
编译成功后
[WangKun@Alibaba dubboDemo] $ cd dubbo-simple/dubbo-registry-simple/target/
[WangKun@Alibaba target] $ tar zxvf dubbo-registry-simple-2.5.4-SNAPSHOT-assembly.tar.gz
[WangKun@Alibaba target] $ cd dubbo-registry-simple-2.5.4-SNAPSHOT/bin/
[WangKun@Alibaba bin] $ ll
总用量 18K
-rwxr-xr-x 1 quentin.wk Domain Users 2.1K 九月 1 17:40 dump.sh*
-rwxr-xr-x 1 quentin.wk Domain Users 49 九月 1 17:40 restart.sh*
-rwxr-xr-x 1 quentin.wk Domain Users 413 九月 1 17:40 server.sh*
-rwxr-xr-x 1 quentin.wk Domain Users 815 九月 1 17:40 start.bat*
-rwxr-xr-x 1 quentin.wk Domain Users 2.9K 九月 1 17:40 start.sh*
-rwxr-xr-x 1 quentin.wk Domain Users 836 九月 1 17:40 stop.sh*
在windows下运行start.bat即可将dubbo注册中心服务起来
同上,
[WangKun@Alibaba dubboDemo] $ tar zxvf dubbo-simple/dubbo-monitor-simple/target/dubbo-monitor-simple-2.5.4-SNAPSHOT-assembly.tar.gz
[WangKun@Alibaba dubboDemo] $ tar zxvf dubbo-demo/dubbo-demo-provider/target/dubbo-demo-provider-2.5.4-SNAPSHOT-assembly.tar.gz
[WangKun@Alibaba dubboDemo] $ tar zxvf dubbo-demo/dubbo-demo-consumer/target/dubbo-demo-consumer-2.5.4-SNAPSHOT-assembly.tar.gz
在解开的文件夹下的bin目录下运行start.bat,即可将consumer,provider,monitor都起来
在monitor的bin目录下运行start.bat http://127.0.0.1/8080
进入http://127.0.0.1/8080即可进入monitor的监控页面
- dubbo的配置文件解析
dubbo-demo-consumer.xml
dubbo:reference id="demoService" interface="com.alibaba.dubbo.demo.DemoService"
dubbo-demo-provider.xml
bean id="demoService" class="com.alibaba.dubbo.demo.provider.DemoServiceImpl"
dubbo:service interface="com.alibaba.dubbo.demo.DemoService" ref="demoService"
dubbo-registry-simple.xml
bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
dubbo:application name="${dubbo.application.name}" owner="${dubbo.application.owner}"
dubbo:protocol name="dubbo" port="${dubbo.protocol.port}" heartbeat="180000"
dubbo:service id="registryServiceConfig" interface="com.alibaba.dubbo.registry.RegistryService" ref="registryService" registry="N/A" ondisconnect="disconnect" callbacks="1000"
dubbo:method name="subscribe">
dubbo:method name="unsubscribe">
bean id="registryService" class="com.alibaba.dubbo.registry.simple.SimpleRegistryService"