面试题答案
一键面试轮询方式
- 原理:微服务定时去检查配置文件的修改时间戳或文件内容的哈希值等标识。如果发现与上次检查的值不同,就认为配置文件发生了变化,重新加载配置。
- 优点:实现简单,对微服务架构侵入性小。
- 缺点:增加了不必要的系统开销,若轮询间隔短会频繁检查,占用过多资源;若间隔长则不能及时感知配置变化。
事件监听方式
- 原理:利用操作系统提供的文件系统事件通知机制(如Linux的inotify、Windows的ReadDirectoryChangesW等)。当配置文件发生变化时,系统会触发相应事件,微服务通过监听这些事件来感知配置变化并重新加载。
- 优点:能实时感知配置变化,响应迅速,无需额外的轮询开销。
- 缺点:不同操作系统实现方式不同,代码可移植性差;增加了微服务与操作系统的耦合度;事件监听机制本身可能存在一些复杂的异常情况需要处理。
消息队列方式
- 原理:配置中心在配置文件变化时,向消息队列发送一条包含配置变化信息的消息。微服务订阅该消息队列,当接收到消息时,就知道配置发生了变化,从而重新加载配置。
- 优点:解耦了配置中心和微服务,具有良好的扩展性和灵活性;消息队列可以保证消息的可靠传递,确保微服务能收到配置变化通知。
- 缺点:引入了消息队列系统,增加了系统的复杂度和维护成本;可能存在消息传递延迟等问题,导致配置变化不能及时被微服务感知。