从4个远程服务器中提取大量数据的最佳技术是什么?

时间:2010-02-01 07:11:52

标签: real-time server-push stocks

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

但由于这些是超过1000家公司的实时库存数据,我不得不每秒钟一次,这在内存,带宽的情况下并不好。我想。

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

4 个答案:

答案 0 :(得分:2)

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

  • HTTP从来不是用于大量数据或实时的,所以如果你能使用更合适的东西,你可能会更好地使用其他协议 - 从我的头脑中,如果我没记错,FTP是一个比HTTP更加带宽友好的协议的例子,虽然它肯定不是最好的协议
  • 考虑到永久拉动的设置,你可能最好使用包含异步I / O原语的语言,并且在线程方面是健壮的。

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

如果您仅限于您提供的语言列表,我会选择Java。 I / O有点复杂但相当强大,库包含很多对象,它必然会有你需要的东西,它允许异步I / O并且它可以很好地管理线程。

那就是说,我更专注于协议而不是语言。无论您使用何种语言,您的协议都必须有一个库。

答案 1 :(得分:1)

特定技术不可能以显着的方式优于所有其他技术,使其成为明确的选择。你需要适当地设计它。你使用的语言不会有什么后果。

此外,如果您无法获得比您在问题中提供的更多信息(以及您在此无法提供的信息),那么您的问题实在无法解决。

答案 2 :(得分:1)

抛出一些名字以便你可以去探索:HTTP,XMPP,AMQP,ZeroMQ。实现方面,在Erlang中编写的具有集群支持的东西可能是一个不错的选择。

答案 3 :(得分:0)

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

选择一个快速执行的协议(我在这里不能提供太多建议,但不要做HTTP)。