从 4 个远程服务器中提取大量数据的最佳技术是啥 [关闭]

Posted

技术标签:

【中文标题】从 4 个远程服务器中提取大量数据的最佳技术是啥 [关闭]【英文标题】:What is the best possible technology for pulling huge data from 4 remote servers [closed]从 4 个远程服务器中提取大量数据的最佳技术是什么 [关闭] 【发布时间】:2010-02-01 07:11:52 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

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

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

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

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

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

【讨论】:

【参考方案2】:

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

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

【讨论】:

@Moron,考虑换个名字;-D 如果我这样做了,我得到的所有@Moron cmets 都会突然变得粗鲁:-)【参考方案3】:

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

【讨论】:

【参考方案4】:

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

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

【讨论】:

以上是关于从 4 个远程服务器中提取大量数据的最佳技术是啥 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

将大量数据从 DataFlow 加载到外部 postgres 数据库的最佳方法是啥?

解析服务器:用远程数据更新本地存储的最佳方法是啥

使用远程服务中的数据刷新简单的 Android Home Widget 的最佳方法是啥?

从 .CSV 文件比较/插入/更新 MySQL 数据库中的产品的最佳方法是啥

从 C# 中的矩形数组中提取一维数组的最佳方法是啥?

从 Groovy 中的 Set 中提取单个值的最佳方法是啥?