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