我正在尝试构建一个服务,它将监视图形结构中的当前系统状态。例如,如果userA在userB上订阅并与之聊天,则该图应包含下一个关系:
A - 订阅 - >乙
A - 与 - 聊天 - >乙
B - 与 - 聊天 - >甲
如果userA退出聊天,则应删除该关系。
此外,应该引入新的微服务,因此不能实现硬编码决策(如支持关系子集)。
主要问题是数据的一致性和无法硬编码的新关系。
我想知道是否有任何解决方案或库可以帮助我解决这个问题。任何建议将不胜感激。
答案 0 :(得分:0)
听起来您的系统应该支持事件驱动的架构。例如,任何可能与系统其他部分相关的操作都应记录在事件队列中。因此,现在只要您的图形服务准备好更新,它就可以将事件队列读取到最后并更新其自己的状态。这将是一个尽可能解耦并且能够适应数据丢失或其他潜在问题的解决方案。
通常人们使用像Apache Kafka这样的技术来实现一个简单,轻量,快速的事件队列。它允许您定义队列,称为主题和处理主题的使用者。请参阅the docs。