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 中心功能及特性。更多精彩资讯请拜访:dubbo.apache.org