我有一个包含大约 10 种对象的应用程序。每种类型都可能有几千个对象实例。这些对象列表需要在不同机器上运行的应用程序之间保持同步。如果添加、更改或删除对象,则需要传播到其他机器。
这将是一个星型拓扑——有一个中央主机,其余的是客户端。
我确实有会话的概念,因此可以存储有关每个客户端的数据。
是否有一个好的设计模式可以遵循?更好的是,是否有一个(基于模板的?)库可以处理询问容器自客户端 X 出现以来发生了什么变化并让该增量发送出去?
现在我在想每个对象类型的容器都有一个更新计数器。当添加/更改/删除某些内容时,更新计数器会增加,并且更改的对象会被标记为该值。每个客户端在获得更新时都会保存更新计数器的值。稍后它会回来并要求任何更改,因为它是更新计数器值。最后,删除被保存为墓碑记录(尽管我不确定何时清除它们)。
使这更难的一件事是客户端可以在中央服务器不一定知道的情况下进出,尽管我猜可能存在超时概念(如果服务器在 5 分钟内没有收到客户端的消息,则假定客户端已消失)
这是众所周知的模式吗?有什么额外的建议吗?