Dubbo 简 单 应 用

一、Dubbo概述:

Dubbo 是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 spring框架无缝集成,也是一个非常全面的SOA基础框架。其是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点.

基于Zookeeper实现服务的输出和输入功能,并对服务调用进行协调和监控的框架应用。

详情参考博文:

http://blog.csdn.net/lishehe/article/details/46652497

http://dubbo.io/

http://www.oschina.net/p/dubbox?fromerr=ZNY2M0u5

https://www.oschina.net/p/dubbox

二、Zookeeper的安装和使用:

Dubbo基于zookeeper来运行,因此在安装使用dubbed之前需要先安装配置zookeeper。Zookeeper是Apache Hadoop的子项目,强度相对较好,建议生产环境使用该注册中心。Dubbo未对Zookeeper服务器端做任何侵入修改,只需安装原生的Zookeeper服务器即可,所有注册中心逻辑适配都在调用Zookeeper客户端时完成。

2.1安装:

Wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.3.6/zookeeper-3.3.3.tar.gz

tar zxvf zookeeper-3.3.6.tar.gz

cd zookeeper-3.3.6

cp conf/zoo_sample.cfg conf/zoo.cfg

2.2配置

vi conf/zoo.cfg

#The number of milliseconds of each tick 

tickTime=2000 

# The number of ticks that the initial  

# synchronization phase can take 

#initLimit=10 

# The number of ticks that can pass between  

# sending a request and getting an acknowledgement 

#syncLimit=5 

# the directory where the snapshot is stored. 

dataDir=/home/dubbed/zookeeper-3.3.3/data

# the port at which the clients will connect  

clientPort=2181

 

启动:./bin/zkServer.sh start

停止:./bin/zkServer.sh stop

三、Dubbo安装:

3.1、下载和构建:

下载地址:https://github.com/dangdangdotcom/dubbox

通过git方式将dubbed源码clone到本地文件夹。Cmd进入文件夹,直接在dubbox根目录执行mvn –U eclipse:myeclipse和mvn install,最终会在dubbed应用中生产dubbo-2.8.4.jar(使用了dubbox的最新版本)包。(切勿一个应用一个应用构建,会有些构建不过去,另外构建的时候使用maven3.3.2以上版本,源码中有些测试代码执行不过去,在mvn install的时候执行:mvn install -Dmaven.test.skip=true打包时跳过测试代码)

3.2、dubbed-admin的安装和使用

将打包好的dubbo-2.8.4.jar包拷贝到dubbed-admin的WEB-INF/lib文件夹下。修改WEB-INF/dubbo.properties中的zookeeper注册地址修改为zookeeper的安装服务器IP和端口;下边两行分别是root和guest用户的密码。

文件修改完后将dubbed-admin打包部署到Web容器。访问应用(http://192.168.11.111:8000/dubbo_admin/)输入用户名和密码进入dubbed管理页面。可查看注册到zookeeper中的服务,应用和机器。

四、调用方和消费方的使用:

调用方和消费方都会用到api的接口,因此需要单独创建api应用,调用方和消费方引入jar包。应用结构构建的时候可以参考dubbed的结构,先创建一个大的文件工程做为parent,然后api,消费方和调用方做为子模块创建。

4.1、创建公用接口:

创建maven工程应用,在应用中创建接口和消费调用方数据传输使用的DTO或json。将创建的应用打包成jar.

4.2、Provider-提供服务的应用:

创建provider应用。Provider不提供web页面支持,因此运行的时候脱离web容器,以java进程运行,减少系统额外开销。创建pom.xml,引入zookeeper,zkclient,dubbo,api的jar包,并且引用maven-assembly-plugin插件将系统应用打包成tar.gz的压缩包。

与不使用dubbed应用不同的地方如下:

1、创建impl类,实现api中的接口和接口中的方法;

2、添加provider.xml配置文件,将应用注册到zookeeper,并提供服务:

<!--提供方应用信息-->

<dubbo:applicationname="mining-pub-provider" owner="mining-pub"organization="com.mining"/>

<!--dubbed zookeeper的注册地址-->

<dubbo:registryaddress="zookeeper://192.168.11.112:2181"/>

<!--用dubbed协议在30883端口暴露服务-->

<dubbo:protocol name="dubbed"port="30883" />

<!--服务方暴露的服务-->

<dubbo:serviceinterface="com.mining.pub.api.MiningPub"ref="miningPubService" />

创建完后运行mvn install将程序打包成tar.gz压缩包,发布到服务器。运行后在dubbed管理界面会看到提供的服务,机器和应用。

4.3、Consumer-消费服务的应用:

创建provider后consumer通过zookeeper调用provider进行消费。创consumer maven工程。在pom.xml中引入zookeeper,zkclient,dubbo,api的jar包。

添加consumer.xml配置文件,引入provider服务的消费bean:

<!--提供方应用信息-->

<dubbo:applicationname="mining-pub-consumer" owner="mining-pub"organization="com.mining"/>

<!--dubbedzookeeper的注册地址-->

<dubbo:registryaddress="zookeeper://192.168.11.112:2181"/>

<!--服务方暴露的服务-->

<dubbo:referenceinterface="com.mining.pub.api.MiningPub"id="miningPub"/>

配置文件中参数的含义参看文档:http://dubbo.io/Developer+Guide-zh.htm

创建完后将系统打包发布到web容器,运行后dubbed管理界面会看到提供的服务。

关注微信公众号和今日头条,精彩文章持续更新中。。。。。

Dubbo 简 单 应 用

Dubbo 简 单 应 用

Dubbo 简 单 应 用