对于我们的一个项目,我们需要从两个国家的 4 个远程服务器中提取大量实时库存数据。这里的简单过程,定期检查源并将更新保存到数据库。
但是由于这些是1000多家公司的实时股票数据,我必须每秒拉一次,这在内存、带宽的情况下我认为不好。
请给我关于哪种技术/平台的建议[我们在这里很灵活。PHP、Python、Java、PERL——它们中的任何一个对我们来说都可以] 我们应该选择,它可以轻松实现并且具有更好的性能。
对于我们的一个项目,我们需要从两个国家的 4 个远程服务器中提取大量实时库存数据。这里的简单过程,定期检查源并将更新保存到数据库。
但是由于这些是1000多家公司的实时股票数据,我必须每秒拉一次,这在内存、带宽的情况下我认为不好。
请给我关于哪种技术/平台的建议[我们在这里很灵活。PHP、Python、Java、PERL——它们中的任何一个对我们来说都可以] 我们应该选择,它可以轻松实现并且具有更好的性能。
如果您想要大量的实时数据,协议可能比语言更重要。但是,您可能希望考虑以下几个方面:
我个人会选择Erlang:用于分发数据的内置高速协议,异步所有内容,可能是学术界的并发和分发的最佳实现。
如果您仅限于提供的语言列表,我会选择 Java。I/O 有点复杂但相当强大,该库包含如此多的对象,它一定会在某个地方拥有您需要的东西,它允许异步 I/O 并且它管理线程相当体面。
也就是说,我会更多地关注协议而不是语言。无论您使用哪种语言,您的协议都必须有一个库。
一项特定的技术不太可能在很大程度上优于所有其他技术,因此这是一个明确的选择。你需要适当地设计它。您使用的语言将没有什么影响。
此外,如果您无法访问比您在问题中提供的信息(并且您无法在此处提供的信息)更多的信息,您的问题确实无法回答。
折腾一些名称,以便您可以去探索:HTTP、XMPP、AMQP、ZeroMQ。在实现方面,用 Erlang 编码的具有集群支持的东西可能是一个不错的选择。
如前所述,协议比技术更重要。根据我的经验,您可能会以快速(可能是非标准的)间隔发送非常相似的数据,因此您可以通过一点点努力开发轻量级数据/内容模式并将所有内容作为原始二进制文件发送。请避免将 JSON/XML 用于您的数据,除非您拥有大量资源和带宽,否则它太胖且太慢而无法带来好处。
选择一个可以快速执行此操作的协议(我在这里不能提供太多建议,但不要使用 HTTP)。