通过网络保持数据列表同步的有效方法是什么



我正在构建一个服务器到多侦听器的应用程序,其中服务器有一个每秒更改多次的"主列表",这些更新需要流式传输到连接的客户端,以便它们可以保持与服务器相同的状态。

该列表包含定价数据,表示来自资产交易所的订单簿,如下所示:

[[1.0, 0.002], [1.1, 1.2039], [1.2, 0.29183]]

。其中第一个值是价格,第二个值是金额。

这个想法是,客户端将在首次连接(或通过其他某个侧信道(时收到完整列表,然后在更改流入时逐步应用更改。

做这种事情有没有模式?效率在这里很重要(但仅次于正确性(,因此最好将传输的数据量保持在最低限度。

编辑:我对传输层不太感兴趣,而对数据层,如何构建增量格式等更感兴趣。

乍一看,我的本能是跟着Observer Pattern走。来自维基百科:

观察者模式

是一种软件设计模式,其中称为主体的对象维护其依赖项的列表,称为观察者,并自动通知它们任何状态更改,通常通过调用其方法之一。

在您的情况下,Master ListSubject,您的Connected Clients是您Listeners。每次Subject更新时,它都会通知Listeners发生了更改。这可以像 CRUD 命令一样简单,以将数据传输保持在最低限度。

警告 - 已知Observer Pattern在横向扩展时会导致问题 Listeners .

观察者模式维基百科链接:https://en.wikipedia.org/wiki/Observer_pattern

最新更新