更新时间:2025-07-16 GMT+08:00

应用场景

微服务注册发现

微服务架构首先要解决的是微服务间的通信问题,相比传统的通信总线、LB方案,注册发现机制在客户端实现负载均衡,在通信效率和弹性上更具优势。CSE为SpringCloud、Dubbo、ServiceComb等开发框架提供了高可用、稳定、免运维的服务注册中心。

微服务注册发现机制主要通过服务注册中心来实现。

  • 服务注册:微服务实例在启动时,会向服务注册中心发送注册请求,将自身的元数据(如服务名称、IP 地址、端口号、版本号等)注册到注册中心。注册中心会将这些信息存储在一个内部的数据结构中,以便后续查询。服务提供者会以固定时间间隔,向注册中心发送包含服务运行状态、负载、资源消耗等健康信息的心跳消息,以此告知注册中心自身处于活动状态。注册中心接收并记录心跳消息,依据消息到达情况和内容判断服务可用性,若超过一定时间未收到心跳,会将对应服务实例状态标记为不健康,若继续超时而仍未收到,则从可用服务列表中剔除该实例。 当服务实例恢复发送心跳,可重新注册。
  • 服务发现:服务消费者直接与注册中心交互,自主获取服务提供者的实例信息,并在本地实现负载均衡。在微服务架构中,服务提供者的实例可能会因为各种原因(如扩容、缩容、故障等)发生变化。服务消费者通过监听注册中心,可以实时感知这些变化,及时更新本地的服务实例列表,确保后续的服务调用能够准确地找到可用的服务提供者。

动态配置管理

配置中心提供集中化的配置管理,实现不同环境、不同集群和不同实例的差异化配置。运行时动态变更配置,相比传统配置文件方式,更加高效和规范。

配置中心按使用方式,分为以下几种:

  • 作为部署环境配置,与部署交付服务集成,如常见的SpringCloud服务的application.yaml,可以承载应用数据源,访问私钥等配置信息。
  • 作为运维参数配置,与运维服务结合,如动态调整日志级别,连接池个数。
  • 作为业务参数配置,如动态修改商品价格折扣,动态公告,动态中奖率等。

微服务在启动过程中,会向配置中心发送请求,获取自身的配置信息。配置中心根据微服务的请求,从存储中读取相应的配置数据,并返回给微服务。微服务在接收到配置信息后,会将其解析并加载到内存中,供应用程序使用。

在配置中心,管理员针对灰度发布需求,定义专门的灰度配置项,这些配置项与正常生产配置区分开,可关联特定标识(如灰度版本号、用户分组标识 )。

  1. 微服务启动时,从配置中心拉取基础配置信息,同时携带自身标识(如服务名、版本号等)及灰度相关标识(若已确定所属灰度分组 )。
  2. 配置中心接收到微服务请求后,依据微服务携带的标识,判断其是否属于灰度范围。若属于灰度范围,配置中心从灰度配置存储区查找并返回对应的灰度配置;若不属于,则返回正常生产配置。
  3. 微服务在运行过程中,可根据配置中心的通知机制(如长连接推送、定时轮询 ),动态拉取灰度配置的更新内容。当灰度配置有变更时,配置中心及时通知相关微服务,微服务重新拉取并应用新的灰度配置。