Spring boot + dubbo架构
2018-01-18 本文已影响206人
AKyS佐毅
1、Dubbo简介
-
一个分布式服务治理框架。当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。 此时,用于提高业务复用及整合的分布式服务框架(RPC)是关键。
-
当项目庞大比并且服务需要多次重复性的调用时,就需要一个框架来治理,
dubbo
可以做到的效果就是通多xml文件配置,达到一次提供,到处调用的效果,并且和可以对服务的提供者和消费者进行管理;就是将提供服务的Api打包到服务器,同时注册到注册中心(zookeeper
),需要调用此服务的只需依赖服务器上的jar
包,配置消费者服务即可调用Api。

-
provider
服务的提供方 -
consumer
服务的消费方 -
registry
注册中心(可以对提供方和消费方统一管理) -
monitor
统计中心 -
container
运行容器 -
调用关系说明:
- 服务容器负责启动,加载,运行服务提供者。
- 服务提供者在启动时,向注册中心注册自己提供的服务。
- 服务消费者在启动时,向注册中心订阅自己所需的服务。
- 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
- 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
- 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
2、如何集成Dubbo到Spring boot 中。

-
一 、首先创建服务的提供者
一般的我们都会将API单独抽离出来作为单独的 jar.这里我们也采用这种方式。- 1、在Dubbo-api工程中,仅存放接口文件,并在pom.xml文件中定义它的父工程。
-
2、在Dubbo-provider项目中引入dubbo和dubbo-api文件。
-
3、Dubbo服务生产者文件配置。
simple-dubbo-provider.xml -
4、实现接口定义方法。提供相应的服务返回数据。
-
二、创建服务的消费者
-
1、构建Dubbo-consumer消费者,配置pom.xml文件,引入依赖
-
2、spring-boot-dubbo.xml文件配置
-
3、消费服务响应的方法
-
-
三、启动服务提供者和服务消费者。访问
127.0.0.1:8080/index
结果如下
3、总结

- 通过提供方提供服务到注册中心,消费方通过配置到注册中心上取到该服务,再进行消费(调用),即可达到不同项目之间的相互调用,也验证了分布式管理的意义,此处只是一个简单的小例子,在实际项目运用中,这种模式加上这个框架的好处会更加明显。
微信扫码关注java架构,获取Java面试题和架构师相关题目和视频。