面试题答案
一键面试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模式下,以牺牲部分一致性换取高可用性,适用于对一致性要求不高但对可用性要求高的场景。
- 性能:采用了内存+持久化存储的方式,在保证数据可靠性的同时,通过异步刷盘等机制提高配置读写性能。客户端拉取配置时,通过长轮询机制获取最新配置,减少不必要的请求开销。