梦入琼楼寒有月,行过石树冻无烟

Spring Cloud Apache Dubbo

Dubbos 是 Alibaba 于 2012 年开源,由于当时该项目是内部使用的一个分布式服务治理框架,并经历过多年的大规模业务验证,在短时间内收到很多开发者喜爱,但是处于某些原因在 2014 年停止了维护,所有就出现了当当网的 DubboX,但在 2017 年 9 月,Alibaba 又重启了 Dubbo 项目的维护,于 2018 年 2 月 进入了 Apache 孵化,这意味着 Dubbo 框架并不是只属于 Alibaba ,还属于开源社区的贡献。

在 2019 年 5 月 Dubbo 正式从孵化器中毕业,正式成为 “Apache Dubbo”,意味着这是 Apache 的顶级项目。在目前 Dubbo 主要的作用就是监控和服务注册两个非常常用的功能,除此之外他还提供了服务治理、服务注册、监控、路由容错等功能。

促使 Dubbo 项目产生的两个痛点就是服务提供者服务的连接,通常我们使用的是 URL,但如果服务提供者出现故障或者扩容时就需要来维护服务消费者或者服务中心的地址,因此这种维护方式非常麻烦。除

此我们还需要通过监控来发现那些服务需要进行扩容,那一些服务是不需要这么大性能的,因此需要一个判断的根据,所以可以通过监控来根据不同服务访问的情况来合理调用服务资源,提高机器的利用率。

因此 Dubbo 也类似一个 RPC 框架,但和普通类似框架不同的是它还提供了一个服务治理的功能

Spring Boot in Apache Dubbo and Nacos

Dubbo 除了支持 Spring Cloud 之外,它还支持 Spring Boot 的生态来实现微服务,因此我们在讲解 Spring Cloud Dubbo 之外还需要了解下 ZooKeeper 和 Apache Dubbo 所实现出的微服务效果。

服务接口

为了方便我们的的共用实体类,因此我们可以新建一个普通的 maven 文件,当开饭完成后导出为 jar 包,之后就可以在其他需要的时候直接调用依赖即可:

可以理解为就是将实体类安装本地依赖中,然后用的时候直接引入依赖和工具类即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package model;
/**
* 定义接口
*
* @author kunlun
* @date 2021/8/5
*/
public interface heyService {
/**
* 返回接口
* @param load 服务消费者是
* @return
*/
String getData(String load);
}

当写好之后我们直接在项目的父目录运行 mvn compile install 直接安装到本地即可,之后可以通过其 pom.xml 定义的名称进行引入本地依赖。

1
2
3
4
5
<dependency>
<groupId>org.example</groupId>
<artifactId>dubbo-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
⬅️ Go back