MST

星途 面试题库

面试题:微服务架构下配置中心的常见选型及特点

在微服务架构中,配置中心起着关键作用。请列举至少两种常见的配置中心选型,并阐述它们各自的特点,包括但不限于配置管理方式、数据一致性保障、性能等方面。
28.9万 热度难度
后端开发微服务架构

知识考点

AI 面试

面试题答案

一键面试

1. Spring Cloud Config

  • 配置管理方式:基于Git存储配置文件,支持版本控制。开发者可以方便地对配置进行修改、回滚等操作。例如,将不同环境(开发、测试、生产)的配置文件分别放在不同分支管理。
  • 数据一致性保障:通过Git的一致性机制保障,每次配置更新都记录在版本历史中。客户端拉取配置时,基于HTTP协议获取最新配置。
  • 性能:客户端首次获取配置时会有一定延迟,因为要从Git仓库拉取。但后续可以通过缓存机制提高性能,如在客户端设置本地缓存。

2. Apollo(阿波罗)

  • 配置管理方式:提供了基于Web界面的配置管理,方便运维和开发人员进行操作。支持多环境、多集群配置管理,配置可以按Namespace进行隔离。比如,不同业务模块的配置可以放在不同Namespace。
  • 数据一致性保障:采用了分布式配置存储,通过gRPC长连接实时推送配置更新给客户端,保障数据一致性。即使网络波动,客户端也能在恢复后快速获取最新配置。
  • 性能:gRPC长连接方式减少了客户端轮询开销,配置推送实时性高。同时,服务端采用了多级缓存等优化手段,提高配置读取性能。

3. Nacos

  • 配置管理方式:支持通过控制台或API进行配置管理,支持多种数据格式,如properties、yaml等。可以根据不同的分组、命名空间来管理配置,方便区分不同环境和业务的配置。
  • 数据一致性保障:支持CP(一致性优先)和AP(可用性优先)两种模式。在CP模式下,通过Raft协议保证数据一致性;AP模式下,以牺牲部分一致性换取高可用性,适用于对一致性要求不高但对可用性要求高的场景。
  • 性能:采用了内存+持久化存储的方式,在保证数据可靠性的同时,通过异步刷盘等机制提高配置读写性能。客户端拉取配置时,通过长轮询机制获取最新配置,减少不必要的请求开销。