我是微服务架构的新手。我试图从在线资源中学习。所以我的问题是假设的。
假设您有一个Person对象,并且您对该对象所做的任何更改都会发布到一个主题,并且订阅者使用该对象来更新其数据。假设该主题中有一些消息,例如该用户获得了一个赞,那么,如果您订阅该消息,您将以“喜欢”计数来更新一个。
现在,部署了具有自己的本地人员副本的新服务。现在,此服务开始读取队列,并查看此人主题的数据可追溯到该人已收到多次点赞的7天。那么,该服务如何确定从何处开始阅读本主题?可能是该服务的数据副本已经在收到的备份中占了很多喜欢。
答案 0 :(得分:1)
如果您使用(person, likes)
中的compacted topic,则该主题的最新消息将始终是给定“人物”的最新“赞”
随着更多类似事件的发生,根据日志压缩的描述,对于相同的“ person”,将删除较旧的“ like”计数。
在这种简单情况下,从最早还是最新开始没关系,因为主题的新事件应始终是最新计数,但如果从最早开始,则需要延迟阅读时间计数,因为当您读取当前尚未压缩的日志段时,延迟可能会有些高。