根据此处的文档:https://github.com/OpenHFT/Chronicle-Engine可以使用地图进行发布/订阅。这允许人们创建类似于中间件(例如Tibco,29W,Kafka)中可用的主题的构造,并将其用作跨进程发送事件的方式。这是编年史地图的推荐用法吗?如果发布者和订阅者都在同一台计算机上,我可以期待什么样的延迟? 我的第二个问题是,如何将其扩展到跨机器发送消息?这如何与企业TCP复制一起使用?
我的要求是创建数千个主题,并使用它们在不同计算机(在LAN中)中运行的进程之间进行通信。这些主题中的每一个都将由单个源编写,并由在相同或不同机器中运行的多个读取器读取。如果特定主题的来源消失,该源的副本将开始写入主题,并且听众将继续接收消息。无需存储这些消息以进行重播。
答案 0 :(得分:0)
这是编年史地图的推荐用法吗?
是的,您可以使用引擎来支持计算机上的事件通知。但是,如果您想要最低延迟,则可能需要通过队列发送通知并将最新值保留在地图中。
如果发布者和订阅者都停留在同一台计算机上,我可以期待什么样的延迟?
这取决于你的用例esp数据的大小(在地图案例中也是条目的数量)引擎中的Map的延迟大约是30到100 us,但Queue的延迟大约是2 - 5 us
我的第二个问题是,如何将其扩展到跨机器发送消息?
为此您需要我们的许可产品,但代码是相同的。
这些主题中的每一个都将由单个来源编写,并由在相同或不同机器中运行的多个读取器读取。如果特定主题的来源消失,该源的副本将开始写入主题,并且听众将继续接收消息。
最有可能的,最简单的解决方案是使用Map,其中每个主题都是不同的键。这会将该主题的最新值发送给消费者。 如果您需要记录每个事件,队列可能是更好的选择。如果您不需要长时间保留数据,则可以使用非常排序的文件轮换。