-1

对于我们的一个项目,我们需要从两个国家的 4 个远程服务器中提取大量实时库存数据。这里的简单过程,定期检查源并将更新保存到数据库。

但是由于这些是1000多家公司的实时股票数据,我必须每秒拉一次,这在内存、带宽的情况下我认为不好。

请给我关于哪种技术/平台的建议[我们在这里很灵活。PHP、Python、Java、PERL——它们中的任何一个对我们来说都可以] 我们应该选择,它可以轻松实现并且具有更好的性能。

4

4 回答 4

2

如果您想要大量的实时数据,协议可能比语言更重要。但是,您可能希望考虑以下几个方面:

  • HTTP 从来都不是用于大数据或实时的,所以如果你可以使用更合适的东西,你可能最好使用另一种协议——从我的脑海中,如果我没记错的话,FTP 是一个例子比 HTTP 对带宽更友好的协议,尽管它肯定不是最好的协议
  • 考虑到永久拉动的设置,您可能最好使用一种包含异步 I/O 原语并且在线程方面很健壮的语言。

我个人会选择Erlang:用于分发数据的内置高速协议,异步所有内容,可能是学术界的并发和分发的最佳实现。

如果您仅限于提供的语言列表,我会选择 Java。I/O 有点复杂但相当强大,该库包含如此多的对象,它一定会在某个地方拥有您需要的东西,它允许异步 I/O 并且它管理线程相当体面。

也就是说,我会更多地关注协议而不是语言。无论您使用哪种语言,您的协议都必须有一个库。

于 2010-02-01T07:35:54.467 回答
1

一项特定的技术不太可能在很大程度上优于所有其他技术,因此这是一个明确的选择。你需要适当地设计它。您使用的语言将没有什么影响。

此外,如果您无法访问比您在问题中提供的信息(并且您无法在此处提供的信息)更多的信息,您的问题确实无法回答。

于 2010-02-01T07:18:44.017 回答
1

折腾一些名称,以便您可以去探索:HTTP、XMPP、AMQP、ZeroMQ。在实现方面,用 Erlang 编码的具有集群支持的东西可能是一个不错的选择。

于 2010-02-12T21:26:52.470 回答
0

如前所述,协议比技术更重要。根据我的经验,您可能会以快速(可能是非标准的)间隔发送非常相似的数据,因此您可以通过一点点努力开发轻量级数据/内容模式并将所有内容作为原始二进制文件发送。请避免将 JSON/XML 用于您的数据,除非您拥有大量资源和带宽,否则它太胖且太慢而无法带来好处。

选择一个可以快速执行此操作的协议(我在这里不能提供太多建议,但不要使用 HTTP)。

于 2010-04-24T23:07:54.710 回答