Dubbo框架介绍和开发环境搭建
Dubbo是由阿里巴巴于2009年开始在内部使用,在经过内部多个版本的演化后在2012年开源的一款高性能高可用的高性能、轻量级的开源Java RPC框架。开源后虽然得到了很多互联网公司的普遍使用,但还是于2014年10月30号发布2.4.11版本后停止维护,即便如此业界对Dubbo的使用热情并没有受到太大影响,各自维护和演化自己的内部版本。在停止维护3年后的2017年9月7日Dubbo又开始更新,并且在3个月时间内连续发布了4个维护版本,最终于2018年2月15日成为了Apache基金会孵化项目。
工具/原料
Eclipse
Maven
Zookeeper
Dubbo架构介绍
1、Dubbo经常会和SpringCloud微渲舫蒇芘服务架构作比较,但实际上两者侧重的领域是有很大不同的。Dubbo侧重于服务治理即服务的注册更新、管理服务的生命周期、定制服务的遵从规则,确保服务一致性、服务监控等、服务的调用等。而SpringCloud则侧重于整个微服务生态,除了服务治理以外对服务网关、分布式配置、服务跟踪、消息总线、数据流、批量任务等都有很好的技术规范实现。可以看出来Dubbo可以作为SpringCloud生态的一部分和SpringCloud整合在一起提供服务治理方面的支持。虽然功能没有SpringCloud整个生态完善,但是就服务治理来讲,Dubbo有着诸多优势:1.支持更多协议,如:rmi、hessian、http、webservice等。2.效率更高,因为访问方式的不同Dubbo能有更好的表现。3.服务治理提供粒度更小的管理。
2、Dubbo核心功能:1.远程通讯,提供对多种基于长连接的 NIO 框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。2.集群容错,提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持。3.自动发现,基于注册中心目录服务,使服务消费方能动态的查找服务提供方,使地址透明,使服务提供方可以平滑增加或减少机器。Dubbo架构如图所示:
3、由上图可知Dubbo的服务调用流程如下:1.服务提供者将自己发布注册到服务注册中心暴露服务2.服务消费者从服务注册中心订阅服务3.服务消费者根据注册中心获取的服务进行进行远程调用
Dubbo本地开发环境搭建
1、Duoobo服务注册注册中心的搭建,我们将使用Zookeeper作为实际注册中心进行操作演练
Zookeeper注册中心搭建过程
1、下载Zookeeper压缩包。我们可以从官网中的文档说明找到当前所支持的版本为:zookeeper: 3.4.9。接下来我们进入到Apache下的zookeeper项目,找到对应的下载版本
2、配置Zookeeper的相关参数。解压Zookeeper文件后我们可以进入到路径下的conf目录,在这个目录里面我们可以找到一个配置模板文件zoo_sample.cfg,我们复制这个文件粘贴到当前目录下改名为zoo.cfg并对其参数进行修改,在这里我们直接使用默认配置就好。
3、运行Zookeeper服务。我们进入到Zookeeper的安装目录下找到bin文件夹在里面找到它的启动脚本。如果当前环境是Windows操作系统那么我们可以双击zkServer.cmd脚本进行启动。如果当前环境是Linux环境,我们可以执行命令脚本:./zkServer.sh start 在执行完脚本后用 ./zkServer.sh status 查看启动状态。
Dubbo项目的搭建
1、使用eclipse新建一个服务提供者的maven项目。这里新建一个项目名为:dubbo-provider用来提供根据用户名来返回用户信息的简单实例:1.首先将Dubbo和Zookeeper的依赖架包进行引入。
2、新建服务提供接口和具体实现类,在e罕铞泱殳clipse下创建名为:dubbo-provider的maven项目。1.创建用户信息查询服务接口QueryUserInfoService提供一个根据用户名返回用户信息的接口getUserInfo(String name)。2.创建具体的实现类QueryUserInfoServiceImpl,实现根据用户名返回一个用户信息的字符串。3.在resources文件夹下创建applicationProvider.xml配置服务类的相关信息,用来注册和暴露服务。4.创建服务注册类:ServerMain读取配置文件,注册配置文件中的服务,配置完成后启动该类即可完成服务的注册。
3、配置监控中心。如果我们需要对自己的服务进行监控和查看需要安装Monitor服务。1.在Github上下载dubbo幻腾寂埒-admin项目后修改目录下的dubbo.properties文件: 1)配置zk地址: dubbo.registry.address=zookeeper://127.0.0.1:2181 2)配置登录用户root密码: dubbo.admin.root.password=roo2.构建项目,在dubbo-admin目录下 使用maven命令打包:mvn clean package3.运行dubbo-admin项目可以用以下两种方式: 1)mvn --projects dubbo-admin-server spring-boot:run 2)cd dubbo-admin-distribution/targe;java -jar dubbo-admin-0.1.jar4.运行成功后即可通过默认的127.0.0.1:8080访问监控后台页面
4、新建服务消费者项目实现对服务提供者进行服务消费,在eclipse下创建名为:dubbo-customer的maven项目。1.引入或创建服务接口QueryUserInfoService类2.在resources文件夹下创建applicationContext.xml配置注册中心信息,用来获取服务信息。3.创建一个消费测试类QueryUserInfoService调用服务。