从 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 的最佳方法是啥?