MST

星途 面试题库

面试题:微服务架构中配置中心设计的常用开源方案及特点

请列举至少两种微服务架构中常用的配置中心开源方案,并阐述它们各自的特点,包括但不限于配置管理方式、数据一致性保证、性能等方面。
40.8万 热度难度
后端开发微服务架构

知识考点

AI 面试

面试题答案

一键面试

1. Spring Cloud Config

  • 配置管理方式:基于Git存储配置文件,支持版本控制,开发人员可通过修改Git仓库中的配置文件来更新微服务配置。例如,不同环境(开发、测试、生产)的配置文件可放在不同分支。
  • 数据一致性保证:借助Git的一致性机制,当配置发生变更时,微服务客户端通过定时拉取(默认30秒)或手动触发(如借助Spring Cloud Bus结合消息队列实现)方式更新配置,能保证最终一致性。
  • 性能:由于配置存储在Git,读取配置时可能涉及网络I/O操作,但通过合理设置缓存(如客户端缓存),可减少重复读取开销,在一般场景下能满足性能需求。

2. Apollo

  • 配置管理方式:提供了一个Web界面用于配置管理,支持多环境、多集群配置,不同的微服务可以在该界面上进行独立的配置管理。比如可以针对不同业务线的微服务设置不同的配置项。
  • 数据一致性保证:采用推送模式,服务端配置发生变化时,能实时推送通知给客户端,确保配置的实时一致性。通过长连接等技术实现高效推送。
  • 性能:具备良好的性能,其架构设计能够支持大规模的微服务配置管理,在高并发场景下也能稳定运行,推送机制减少了客户端轮询带来的性能开销。

3. Nacos

  • 配置管理方式:支持通过控制台或API进行配置管理,支持多种数据格式(如properties、yaml等)。可将不同微服务的配置按命名空间、分组等进行分类管理,便于维护。
  • 数据一致性保证:支持AP(最终一致性)和CP(强一致性)两种模式。在AP模式下,能保证高可用和数据最终一致性,适合大部分互联网应用场景;在CP模式下,能保证强一致性,适用于对数据一致性要求极高的场景,如金融领域部分业务。
  • 性能:性能优异,采用了优化的存储和网络通信机制,能够快速处理大量的配置请求,无论是配置的读取还是更新操作,都能在短时间内完成,满足大规模微服务集群的配置需求。