ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

00-Dubbo-基本概念

00-Dubbo-基本概念 1、Dubbo基础概念Apache Dubbo是一款RPC服务开发框架用于解决微服务架构下的服务治理和通信问题官方提供了Java、Golang等多语言实现。使用Dubbo开发的微服务原生具备相互之间的远程地址发现与通信能力利用Dubbo提供的丰富服务治理特性可以实现诸如服务发现、负载均衡、流量调度等服务治理诉求。Dubbo被设计为高度可扩展用户可以方便的实现流量拦截选址的各种定制逻辑。2、Dubbo能做什么Dubbo可以帮助解决微服务实践的一系列问题微服务编程范式和工具Dubbo支持基于IDL(Interface Definition Language接口定义语言 )或语言特定方式的服务定义提供多种形式的服务调用形式(如同步、异步、流式等)高性能RPC通信Dubbo帮助解决微服务组件之间的通信问题提供了基于HTTP、HTTP/2、TCP等多种高性能通信协议实现并支持序列化协议扩展在实现上解决网络连接管理、数据传输等基础问题。微服务监控与治理Dubbo官方提供的服务发现、动态配置、负载均衡、流量路由等基础组件可以很好的帮助解决微服务基础实践的问题。除此之外还可以在Admin控制台监控微服务状态通过周边生态完成限流降级、数据一致性、链路追踪等能力。部署在多种环境Dubbo服务可以直接部署在容器k8s, service mesh等多种框架下活跃的社区Dubbo项目托管在Apache社区有来自国际、国内活跃贡献者维护着10个生态项目贡献者包括来自海外、阿里巴巴、工商银行、携程、蚂蚁、腾讯等知名企业技术专家确保Dubbo及时解决项目缺陷、需求及安全漏洞跟进业界最新技术发展趋势。庞大的用户群体Dubbo3已在阿里巴巴成功落地、实现了对老版本HSF2框架全面升级成为阿里集团面向云原生时代的统一服务框架底座庞大的用户群体是Dubbo保证稳定性、需求来源、先进性的基础题外话遵循一套标准的中间件分析思维从开发写代码-运行时通信-运维治理-部署环境-项目可信度自上而下软件生命周期。层层递进。3、Dubbo的工作原理图以上是Dubbo的工作原理图从抽象的层面上分为两层服务治理抽象控制面和Dubbo数据面。服务治理抽象控制面服务治理抽象控制面不是特指如注册中心类的单个具体组件而是Dubbo治理体系的抽象表达。控制面包含协调服务发现的注册中心、流量管控策略、Dubbo Admin控制台等。Dubbo数据面数据面代表集群部署的所有Dubbo进程进程之间通过RPC协议实现数据交换Dubbo定义了微服务应用开发与调用规范并负责完成数据传输的编解码工作。服务消费者发起业务调用或RPC通信的Dubbo进程服务调用者接收业务调用或RPC通信的Dubbo进程4、Dubbo数据面从数据面视角Dubbo帮助解决了微服务实践中的以下问题Dubbo作为服务开发框架约束了微服务定义、开发与调用规范定义了服务治理流程及适配模式Dubbo作为RPC通信协议实现解决服务间数据传输的编解码问题5、Dubbo服务治理服务开发框架解决了开发与通信的问题但在微服务集群环境下我们仍需要解决无状态服务节点动态变化外部化配置、日志跟踪、可观测性、流量管理、高可用性、数据一致性等一系列问题这些问题称之为服务治理。Dubbo抽象了一套微服务治理模式并发布了对应的官方实现服务治理可帮助简化微服务开发与运维让开发者更专注于微服务业务本身。上图展示了Dubbo核心的服务治理功能定义1、地址发现Dubbo服务发现具备高性能、支持大规模集群、服务级元数据配置等优势默认提供Nacos、Zookeeper、Consul等多种注册中心适配、与Spring Cloud、Kubernetes Service模型打通支持自定义扩展。2、负载均衡Dubbo默认提供加权随机、加权轮询、最小活跃请求数优先、最短响应时间优先、一致性哈希以及自适应负载均衡等多种策略。3、流量路由Dubbo 支持通过一系列流量规则控制服务调用的流量分布与行为基于这些规则可以实现基于权重的比例流量分发、灰度验证、金丝雀发布、按请求参数的路由、同区域优先、超时配置、重试、限流降级等能力。4、链路追踪Dubbo 官方通过适配 OpenTelemetry 提供了对 Tracing 全链路追踪支持用户可以接入支持 OpenTelemetry 标准的产品如 Skywalking、Zipkin 等。另外很多社区如 Skywalking、Zipkin 等在官方也提供了对 Dubbo 的适配。5、可观测性Dubbo 实例通过 Prometheus 等上报 QPS、RT、请求次数、成功率、异常次数等多维度的可观测指标帮助了解服务运行状态通过接入 Grafana、Admin 控制台帮助实现数据指标可视化展示。
返回列表