在分布式系统的构建之中,服务治理是类似血液一样的存在,一个好的服务治理方案可以大大降低协作开发的成本和整体的版本迭代效率。

限制说明

  • Dubbo 版本限制:只有 2.7.3+ 的 Dubbo 版本,才可以使用 Dubbo 服务治理控制台的功能。
  • 注册中心限制:只有使用 Nacos 实现服务注册与发现的 Dubbo 应用,才能进行服务查询以及显示服务列表。
  • 元数据中心限制:只有使用 Nacos 作为元数据中心的 Dubbo 应用,才能显示出服务的方法列表。
  • 配置中心限制:只有使用 Nacos 作为配置中心的 Dubbo 应用,才能进行服务治理。

推荐使用 Nacos 作为注册中心、配置中心、元数据中心,并且使用最新的 Dubbo 2.7.x 版本。

应用场景

在服务治理之前,简单粗暴的 RPC 调用使用的点对点方式,完全通过人为进行配置操作决定,运维成本高,容易出错,且整个系统运行期间的稳定性无法被很好地评估。引入服务治理是为了对整体的 RPC 调用进行集中化管理。其核心价值在于,提升分布式系统的性能、减少重复劳动、避免手动配置物理文件产生的问题、降低开发人员的技术运用成本。

不同的产品框架有不同的服务治理方案,提供了不同级别的服务治理能力。做好了服务治理,微服务化的推进会事半功倍。除了实际的 RPC 调用之外,服务治理一般还会包含:注册、订阅、变更下发。除了这三个核心动作之外,其它的辅助操作还有统计上报、鉴权、路由规则、负载均衡等等,不同的微服务框架具备的服务治理的能力是选型时的重要依据。

下面是一些典型的服务治理案例:

  • 基于版本号的服务管理,可以用于灰度发布。
  • 请求的复制回放,用于模拟真实的流量进行压测。
  • 给请求打标签用于实时的在线压测。
  • 更灵活的负载均衡和路由策略。
  • 内置的熔断机制,避免整个分布式系统产生雪崩效应。

Dubbo 服务治理功能