使用ZeroMQ PUB/SUB
模型,订阅者是否可以根据超过第一帧的内容进行过滤?
例如,如果我们的多帧消息包含三个框架 1)数据类型,则 2) 仪器,
然后 3)实际数据,是否可以订阅特定数据类型,仪器对?
(我看到的所有示例都只显示基于多部分消息的第一条消息的过滤。)
答案 0 :(得分:0)
初始ZeroMQ模型使用 sub 划线器端基于子描述的过滤。
pub lisher更容易,因为它不需要处理 sub 特定于划线器的处理,只需将所有数据都提供给所有SUB
- s(是的) ,以牺牲网络流量为代价,并导致 SUB
侧工作负载处理所有传入的BLOB
,从PHY
- 媒体一直向上,即使它没有 sub 抄写它是特定的 topic
。是的,在低延迟设计中相当昂贵)
PUB
-side过滤最初提议用于以后的实施但是,此模式不允许您的想法仅使用PUB/SUB
S 可解析 F 正常 C 通信的 p 强> attern。
ZeroMQ协议设计致力于激励用户,如何实现恰当设计的分布式系统的行为。
从您的1-2-3意图中可以理解,自定义逻辑应足以实现所需的处理。
在您的应用领域特定解决方案中,不要犹豫并行设置多个消息/控制中继,它对于任何量身定制的解决方案都要好得多,并且比尝试 “弯曲”更安全 一个库的原始原型(在这种情况下是简单的PUB/SUB
topic
- 基于过滤),使某些东西有点不同,而不是设计了原始用例。
更真实的是,如果您的特定于域的使用是FOREX / Equity交易,其中延迟是您最大的敌人,那么成功的方法必须尽可能地最小化流解码和替代分支。
如果读取有关多帧组合(发送方BLOB
程序集)的详细信息,则没有延迟优势,因为整个BLOB
只有在完成后才会进入线路 - 如果您的想法是处理信令的初始帧内容,那么您的SUB
方没有任何优势,因为整个BLOB
一起到达“