使用ZeroMQ / NFS分发实时市场数据?

1 投票
3 回答
1365 浏览
提问于 2025-04-16 20:40

假设你有一台机器,它实时接收来自交易所的股票价格。这些价格需要以最快的方式传输到你网络中的另外50台机器上,以便每台机器都能对数据进行自己的处理。

那么,怎样才能把数据最快地发送到这50台机器呢?

我希望找到一个可以在linux上运行,并且使用python作为编程语言的解决方案。我想到了一些方法:

(1) 使用pythonZeroMQ模块将数据发送给其他机器。

(2) 将数据保存到一个共享文件夹,然后让这50台机器通过NFS来读取。

还有其他的想法吗?

3 个回答

0

绝对不要使用文件系统。ZeroMQ 是一个很棒的解决方案,并且在 Python 中有相关的支持。我这里有一些例子:www.coastrd.com。如果你需要更多帮助,可以联系我。

1

我很确定,用ZeroMQ发送信息会比保存和加载文件快很多。

还有其他方法可以在网络上发送信息,比如原始套接字(这是更底层的方式)、像RabbitMQ这样的AMQP实现(这种方式更有结构和复杂),还有HTTP请求和回复等等。ZeroMQ是一个不错的选择,但具体还得看你的情况。

你也可以看看一些分布式计算的框架,比如IPython里面的那些。

1

我推荐使用zeromq和发布/订阅的套接字。

在你提到的第二种选择中,你的“客户端”需要手动刷新才能获取文件的修改,就像轮询一样。如果出现写入错误,你还得自己处理,这可不容易。

zeromq简单、可靠且功能强大,我觉得非常适合你的情况。

撰写回答