由于在微服务领域有两大框架统治,一个是springCloud的全家桶,一个是Dubbo。我用Dubbo比较少,所以也是学习状态。
第一章Dubbo简介
Apache Dubbo 是一款 RPC 微服务框架,提供了包括 Java、Golang 等在内的多种语言 SDK 实现。
其实最早在2017年的时候我就接触到了Dubbo这个框架,那时是阿里巴巴开发的,使软件系统引入了分层的架构,形成了分布式的系统。后来由阿里巴巴开源,捐给了apache。所以我们又需要多学一种架构。目前发展到了Dubbo3
Dubbo3框架主要特性
基于 HTTP/2 的 Triple 协议以及面向代理 API 的编程体验。
强大的流量治理能力,如地址发现、负载均衡、路由选址、动态配置等。
多语言 SDK 实现,涵盖 Java、Golang、Javascript 等,更多语言实现将会陆续发布。
灵活的适配与扩展能力,可轻松与微服务体系其他组件如 Tracing、Transaction 等适配。
Dubbo Mesh 解决方案,同时支持 Sidecar、Proxyless 等灵活的 Mesh 部署方案。
其中最显著的特性是它是一个RPC框架。
这个框架可以简化成两大角色, 服务端和客户端,中间通过自定义RPC协议传输数据。
服务端就是即使一组组增删查改的API
客户端是一个包含通信协议的钩子。
和springCloud一样,Dubbo的服务也需要一些组件的支持,比如服务注册中心,配置中心,元数据中心。
能流行的原因:
开箱即用
易用性高,如 Java 版本的面向接口代理特性能实现本地透明调用
功能丰富,基于原生库或轻量扩展即可实现绝大多数的微服务治理能力
面向超大规模微服务集群设计
极致性能,高性能的 RPC 通信协议设计与实现
横向可扩展,轻松支持百万规模集群实例的地址发现与流量治理
高度可扩展
调用过程中对流量及协议的拦截扩展,如 Filter、Router、LB 等
微服务治理组件扩展,如 Registry、Config Center、Metadata Center 等
企业级微服务治理能力
国内公有云厂商支持的事实标准服务框架。