Spring Boot 学习笔记 09
0x01 Dubbo3 简介
1 | Apache Dubbo 是一款微服务开发框架,它提供了 RPC通信 与 微服务治理 两大关键能力。这意味着,使用 Dubbo 开发的微服务,将具备相互之间的远程发现与通信能力, 同时利用 Dubbo 提供的丰富服务治理能力,可以实现诸如服务发现、负载均衡、流量调度等服务治理诉求。同时 Dubbo 是高度可扩展的,用户几乎可以在任意功能点去定制自己的实现,以改变框架的默认行为来满足自己的业务需求。 |
Dubbo3 基于 Dubbo2 演进而来,在保持原有核心功能特性的同时, Dubbo3 在易用性、超大规模微服务实践、云原生基础设施适配等几大方向上进行了全面升级。 以下文档都将基于 Dubbo3 展开。
0x02 What is Dubbo?
如开篇所述,Dubbo 提供了构建云原生微服务业务的一站式解决方案,可以使用 Dubbo 快速定义并发布微服务组件,同时基于 Dubbo 开箱即用的丰富特性及超强的扩展能力,构建运维整个微服务体系所需的各项服务治理能力,如 Tracing、Transaction 等,Dubbo 提供的基础能力包括:
- 服务发现
- 流式通信
- 负载均衡
- 流量治理
- …..
Dubbo 计划提供丰富的多语言客户端实现,其中 Java、Golang 版本是当前稳定性、活跃度最好的版本,其他多语言客户端[]正在持续建设中。
自开源以来,Dubbo 就被一众大规模互联网、IT公司选型,经过多年企业实践积累了大量经验。Dubbo3 是站在巨人肩膀上的下一代产品,它汲取了上一代的优点并针对已知问题做了大量优化,因此,Dubbo 在解决业务落地与规模化实践方面有着无可比拟的优势:
- 开箱即用
- 易用性高,如 Java 版本的面向接口代理特性能实现本地透明调用
- 功能丰富,基于原生库或轻量扩展即可实现绝大多数的微服务治理能力
- 超大规模微服务集群实践
- 高性能的跨进程通信协议
- 地址发现、流量治理层面,轻松支持百万规模集群实例
- 企业级微服务治理能力
- 服务测试
- 服务Mock
Dubbo3 是在云原生背景下诞生的,使用 Dubbo 构建的微服务遵循云原生思想,能更好的复用底层云原生基础设施、贴合云原生微服务架构。这体现在:
- 服务支持部署在容器、Kubernetes平台,服务生命周期可实现与平台调度周期对齐;
- 支持经典 Service Mesh 微服务架构,引入了 Proxyless Mesh 架构,进一步简化 Mesh 的落地与迁移成本,提供更灵活的选择;
- 作为桥接层,支持与 SpringCloud、gRPC 等异构微服务体系的互调互通
Apache Dubbo官网:https://dubbo.apache.org/
0x02 SpringBoot 集成Dubbo分布式框架
- 接口工程: 存放实体bean和业务接口
- 服务提供者: 业务接口的实现类并将服务暴露且注册到注册中心,调用数据持久层
- 添加依赖(dubbo,注册中心,接口工程)
- 配置服务提供者核心配置文件
- 服务消费者: 处理浏览器客户端发送的请求,从注册中心调用服务提供者所提供的服务
- 添加依赖(dubbo,注册中心,接口工程)
- 配置服务消费者核心配置文件
首先我们要创建:接口工程项目文件Interface(maven)、提供者项目文件Provider(springboot)、消费者项目文件Consumer(springboot)。
在Provider项目Pom.xml中添加依赖:
1 | <!--Dubbo集成SpringBoot框架起步依赖--> |
Provider项目的核心配置文件 application.properties:
1 | #设置内嵌Tomcat端口号 |
接下来是Consumer消费者项目工程,在Pom.xml中添加依赖:
1 | <!--Dubbo集成SpringBoot框架起步依赖--> |
Consumer项目的核心配置文件 application.properties:
1 | #设置内嵌Tomcat端口号 |