美文网首页Java技术联盟dubbo
分布式服务框架Dubbo入门实践

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

作者: 北海三少 | 来源:发表于2017-02-08 18:01 被阅读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的各种协议实现以及集群部署等。

    相关文章

      网友评论

      本文标题:分布式服务框架Dubbo入门实践

      本文链接:https://www.haomeiwen.com/subject/qktbittx.html