Dubbo 简介
一句话定义
Apache Dubbo 是一款微服务开发框架,它帮忙解决微服务开发中的通信问题,同时为构建企业级微服务的提供服务治理能力,Dubbo 不绑定编程语言,咱们的指标是为所有支流语言提供对等的微服务开发体验。
根本架构
Dubbo 从架构图上分为数据面和管制面。在数据面,应用 Dubbo 开发的微服务过程间基于 RPC 协定通信。DubboAdmin 管制面作为服务治理的形象入口,由一系列可选的服务治理组件形成,负责 Dubbo 集群的服务发现、流量管控策略、可视化监测。
行业利用
Dubbo 设计用于解决阿里巴巴外部大规模 微服务集群实际难题,以后已被广泛应用于简直所有行业的微服务实际中。
以阿里巴巴为例,在 2021 年,阿里巴巴基于外部多年 HSF 框架实际积攒,面向云原生架构设计了下一代微服务框架 Dubbo3,用于解决性能、治理降级、服务网格等一系列问题;截止目前,阿里巴巴已全面完成从 HSF 到 Dubbo3 的迁徙,外围业务都跑在开源 Dubbo3 之上。
Dubbo 到底提供了哪些外围能力?
提供微服务形象与框架
首先,Dubbo 作为服务开发框架解决了业务利用中微服务定义、裸露、通信与治理的问题,为业务利用开发定义了一套微服务编程范式。
具体来说,Dubbo 为业务利用提供了微服务开发API、RPC 协定、服务治理三大外围能力,让开发者真正的专一业务逻辑开发。
Dubbo 不是利用框架的替代者,它能够很好的工作在每种语言的支流编程框架之上,以 Java 为例,Dubbo 能够很好的与 Spring 合作,并在此基础上提供服务定义、微服务编程、服务发现、负载平衡、流量管控等能力。
提供灵便的通信协议切换能力
在通信方面,Dubbo 区别于其余 RPC 框架的是它不绑定特定协定,你能够在底层选用 HTTP./2、TCP、gRPC、REST、Hessian 等任意通信协议,同时享受对立的 API、以及对等的服务治理能力。
所有皆可扩大
Dubbo 的另一个劣势在于其可扩展性设计,从流量管控、协定编码、诊断调优、再到服务治理,你都能够去扩大,满足企业级微服务开发与运维的所有诉求。
丰盛的生态
基于扩大能力 Dubbo 官网提供了丰盛的生态适配,涵盖了所有支流的开源微服务组件。
服务网格
对于服务网格架构,Dubbo也能够轻松接入原生 Istio 体系;在数据面反对与 Envoy 部署的 Proxy 模式,也反对无 Envoy 的 Proxyless 模式,提供更灵便的数据面抉择。
构建企业级 Dubbo 微服务有多简略?你只须要4步
咱们以 Java 微服务开发为例。
第一步
应用官网脚手架疾速创立我的项目模板,只须要抉择依赖的版本、组件,点击 “获取代码” 即可。
第二步
将模板我的项目导入 IDE 开发环境。定义 Java 接口作为 Dubbo 服务。
开发 Dubbo 服务端,实现接口并实现业务逻辑编码,通过一条简略的注解配置实现服务公布。
开发Dubbo 客户端,通过注解申明 Dubbo 服务,而后就能够发动近程办法调用了。
至此,开发工作实现。
第三步
进入部署环节,咱们抉择 Kubernetes 作为部署环境。
首先,通过一条命令装置 dubbo-admin 等服务治理组件,装置胜利之后,咱们查看部署状态。接下来,开始部署业务利用,随后查看确认直到利用曾经失常启动
而后,咱们就能够关上 Admin 控制台查看服务部署与调用状况了。这里是 Dubbo Admin 控制台的页面显示成果,能够看到方才启动的 Dubbo 服务部署状态;除此之外,Admin 还提供了更具体的流量监控监测,点击服务统计,可进入监控页面
你能够在此理解Dubbo 集群的具体运行状态,包含每个利用对外服务和调用服务的状况,QpS、成功率等,还能够查看每个实例的资源健康状况。
第四步
进行流量管控。当利用曾经安稳运行后,进一步管制流量的拜访行为,包含实现金丝雀公布、全链路灰度、动静调整超时工夫、调整权重、按比例流量散发、参数路由等。控制台提供了可视化的流量治理规定操作入口,在这里能够间接下发流量规定。
以一个线上环境的灰度隔离示例,通过 Dubbo 流量管控机制,咱们能够给每个利用的一部分机器打上 gray 标签,接下来,对于入口为 gray 的流量,就能够管制确保它只在有 gray 标记的 Dubbo 实例内流转,实现了全链路的逻辑隔离成果,对于隔离多套开发环境、线上灰度测试等场景都十分有用。
对于同区域优先调用的场景,这里有两个利用做了多区域部署,紫色是杭州区域、蓝色是北京区域,部署在橙色区域的利用会优先拜访同区域的利用,以此升高拜访提早,蓝色区域部署的服务亦是如此。
当利用在同区域区域部署的实例不可用时,调用会主动跨区域切换到其余可用区,确保整体可用性。
总结
本文从 Dubbo 是什么、有哪些外围能力、如何应用 Dubbo 三个方面论述了 Dubbo 的定位,文中局部命令或展现用示例都在继续开发更新中,仅作展现阐明。
Dubbo 于上周上线了新版官网与文档,涵盖 Dubbo3 外围性能及个性。更多精彩资讯请拜访:https://dubbo.apache.org