微服务状态存储:内部与外部存储的全面解析
1. 网络附加磁盘的优势
网络附加磁盘的一个主要优点是,状态可以保存在卷中,并根据需要迁移到新的处理硬件。当处理节点恢复时,网络磁盘可以重新挂载,处理可以从上次中断的地方继续,而不是从变更日志流中重建。这大大减少了停机时间,因为状态不再像本地磁盘那样完全是临时的,还提高了微服务在计算资源之间迁移的灵活性,例如在使用廉价的按需节点时。
2. 使用内部状态的缺点
- 受限于运行时定义的磁盘 :内部状态存储只能使用在服务运行时定义并附加到节点的磁盘。更改附加卷的大小或数量通常需要停止服务、调整卷并重新启动服务。此外,许多计算资源管理解决方案只允许增加卷的大小,因为减小卷的大小意味着需要删除数据。
- 磁盘空间浪费 :周期性的数据模式,如购物网站下午3点和凌晨3点的流量,可能需要周期性的存储卷。也就是说,这些模式在高峰流量时可能需要较大的最大磁盘空间,而在其他时间只需要少量磁盘空间。与使用按存储数据字节收费的外部服务相比,始终保留完整磁盘空间会浪费空间和金钱。
3. 内部状态的扩展和恢复
从状态恢复的角度来看,将处理扩展到多个实例和恢复失败的实例是相同的过程。新的或恢复的实例在开始处理新事件之前,需要实现其拓扑定义的任何状态。最快的方法是为应用程序中实现的每个有状态存储重新加载变更日志主题。
- 使用热副本 :虽然每个分区通常只有一个物化状态的副本,但可以通过一些精心的状态管理创建额外的副本,或者由客户端框架直接利用。Apache K
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



