Java技术联盟dubbo

分布式服务框架Dubbo入门实践

2017-02-08  本文已影响1018人  北海三少

Dubbo简介

Dubbo是阿里巴巴开源的一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务化治理方案。

Dubbo提供基于接口的透明的远程过程调用,支持多种协议,包括Dubbo、RMI、WebService、Hessian、Http、Thrift、Redis、Memcached。

Dubbo基于注册中心的目录服务,使服务消费方能动态的查找服务提供方,支持平滑的减少或增加服务器。

Dubbo支持软负载均衡、失败容错、地址路由、动态配置、服务降级等集群功能。


实践环境

win7操作系统+Dubbo+Spring+Zookeeper+Dubbo-admin,Zookeeper作为服务注册中心,dubbo-admin是dubbo的管理控制台。


Zookeeper安装

到官网 http://apache.org/dist/zookeeper 下载Zookeeper,用的是3.4.6版本。解压下载包并复制conf目录下的zoo_sample.cfg文件,并重命名为:zoo.cfg。

zoo.cfg文件参数说明参考:http://www.cnblogs.com/xiohao/p/5541093.html

启动zk,运行bin目录下zkServer.cmd,(linux:zkServer.sh)

启动zk

安装dubbo-admin应用

下载dubbo-admin应用(本例使用2.4.1版本):https://github.com/alibaba/dubbo

查看dubbo-admin的WEB-INF目录的dubbo.properties文件,里面配置连接zk的地址和管理员密码,如:

dubbo.registry.address=zookeeper://127.0.0.1:2181

把dubbo-admin的war包部署到tomcat的ROOT目录,并启动tomcat,访问:http://localhost:8080,输入管理员账号和密码就可以看到管理控制台。

dubbo管理控制台

定义服务接口

定义服务接口HelloService,根据dubbo用户指南,该接口需单独打包,在服务提供方和消费方共享。

HelloService接口定义

创建服务提供方应用

本例中服务提供方为一个spring应用,实现HelloService接口。

导入依赖包:根据dubbo用户指南,缺省依赖包:log4j、spring、javassist、netty,由于本例使用zk作为服务注册中心,所以也需导入zk的jar包和zkclient.jar。

实现HelloService接口

HelloServiceImpl源码

配置dubbo服务

服务配置

dubbo:protocol:指定协议,accepts设置最大连接数

dubbo:registry:服务注册地址

dubbo:service:发布服务,指定接口全称和引用接口实现定义的bean

启动服务提供方应用,可以发布到tomcat,也可以使用main函数启动。


创建服务消费方应用

本例中服务消费方为一个基于spring的web应用,调用服务提供方的HelloService服务。

导入依赖包:与服务提供方相同

调用远程服务:使用Spring MVC定义一个controller,返回的数据格式为json

ConsumerController源码

注册服务消费方:

注册服务消费方

dubbo:registry:注册地址

timeout:指定服务调用的超时时长

dubbo:reference:引用服务

启动服务消费方应用,访问:http://localhost:8082/dubbo-consumer/sayHello?name=zcl

访问结果

可以在dubbo的管理控制台中看到服务提供方和消费方

服务提供方 服务消费方

这只是dubbo+zk的一个简单的入门实践,后面会系列介绍dubbo的各种协议实现以及集群部署等。

上一篇下一篇

猜你喜欢

热点阅读