《Apache Dubbo微服务开发从入门到精通》——Apache Dubbo 微服务框架简介——二、 核心架构(2) https://developer.aliyun.com/article/1225304
4. Dubbo服务治理
服务开发框架解决了开发与通信的问题,但在微服务集群环境下,我们仍需要解决无状态服务节点动态变化、外部化配置、日志跟踪、可观测性、流量管理、高可用性、数据一致性等一系列问题,我们将这些问题统称为服务治理。
Dubbo抽象了一套微服务治理模式并发布了对应的官方实现,服务治理可帮助简化微服务开发与运维,让开发者更专注在微服务业务本身。
1) 服务治理抽象
以下展示了Dubbo核心的服务治理功能定义。
• 地址发现
Dubbo服务发现具备高性能、支持大规模集群、服务级元数据配置等优势,默认提供Nacos、Zookeeper、Consul等多种注册中心适配,与Spring Cloud、Kubernetes Service模型打通,支持自定义扩展。
• 负载均衡
Dubbo默认提供加权随机、加权轮询、最少活跃请求数优先、最短响应时间优先、一致性哈希和自适应负载等策略
• 流量路由
Dubbo支持通过一系列流量规则控制服务调用的流量分布与行为,基于这些规则可以实现基于权重的比例流量分发、灰度验证、金丝雀发布、按请求参数的路由、同区域优先、超时配置、重试、限流降级等能力。
• 链路追踪
Dubbo官方通过适配OpenTelemetry提供了对Tracing全链路追踪支持,用户可以接入支持OpenTelemetry标准的产品如Skywalking、Zipkin等。另外,很多社区如Skywalking、Zipkin等在官方也提供了对Dubbo的适配。
• 可观测性
Dubbo实例通过Prometheus等上报QPS、RT、请求次数、成功率、异常次数等多维度的可观测指标帮助了解服务运行状态,通过接入Grafana、Admin控制台帮助实现数据指标可视化展示。
Dubbo服务治理生态还提供了对API网关、限流降级、数据一致性、认证鉴权等场景的适配支持。
2) Dubbo Admin
Admin控制台提供了Dubbo集群的可视化视图,通过Admin你可以完成集群的几乎所有管控工作。
• 查询服务、应用或机器状态
• 创建项目、服务测试、文档管理等
• 查看集群实时流量、定位异常问题等
• 流量比例分发、参数路由等流量管控规则下发
3) 服务网格
将Dubbo接入Istio等服务网格治理体系。