2010-02-01 29 views
-1

對於我們的項目之一,我們需要從兩個國家的4個遠程服務器獲取大量實時庫存數據。這裏的微不足道的過程,檢查源定期間隔並將更新保存到數據庫。從4個遠程服務器獲取大量數據的最佳技術是什麼

但是,由於這些都是超過1000家公司的實時股票數據,我必須每秒鐘進行一次,這在內存,帶寬的情況下並不好。

請給我關於哪種技術/平臺的建議[我們在這裏很靈活。 PHP,Python,Java,PERL - 他們中的任何一個對我們來說都是可以的]我們應該選擇,它可以輕鬆實現,並且性能更好。

回答

1

一個特定的技術不太可能比其他所有技術都有更好的表現,這是一個明確的選擇。你需要適當地設計它。您使用的語言沒有多大意義。

此外,你的問題是真正無法回答的,如果你不能獲得比你在問題中提供的信息多得多的信息(這裏你不可能提供這些信息)。

+0

@Moron,想想改變這個名字; -D – pavium 2010-02-01 07:31:28

+0

如果我這樣做,所有@Moron的評論我一直會變得粗魯:-) – 2010-02-02 01:45:00

2

如果你想要巨大的實時數據,那麼協議可能比語言更重要。然而,在這裏,你不妨考慮幾個方面:

  • HTTP從來就不是龐大的數據或實時的,所以如果你可以用更合適些,你可能有另一個更好協議 - 從我的頭頂開始,如果我沒有記錯的話,FTP是一個比HTTP更好的帶寬友好協議的例子,雖然它當然不是最好的一個例子,假設設置永久拉動,使用包含異步I/O原語的語言更好,並且對於線程來說是健壯的。

我會親自去Erlang:內置高速協議數據分發,異步一切可能併發和分佈學術界的這一面的最好的實現。

如果您僅限於您提供的語言列表,我會選擇Java。 I/O有點複雜但功能強大,庫中包含許多對象,它們必然會在某處存在,它允許異步I/O,並且它非常體面地管理線程。

這就是說,我會比語言更注重協議。無論您使用哪種語言,都必定會有一個適合您的協議的庫。

+0

非常感謝。 – 2010-02-02 05:24:52

1

扔一些名字,以便您可以去探索:HTTP,XMPP,AMQP,ZeroMQ。明智的做法是,在Erlang編碼中有集羣支持的東西可能是非常合適的。

0

如前所述,協議更重要的是技術。根據我的經驗,您可能會以快速(可能是非標準)間隔發送非常相似的數據,因此您可以通過一點努力開發輕量級數據/內容模式並將所有內容作爲原始二進制文件發送。請爲您的數據避免使用JSON/XML,除非您擁有大量資源和帶寬,否則它太胖並且速度太慢,以致收益太少。

選擇一個協議,這樣做會很快(我不能在這裏提供很多建議,儘管不要做HTTP)。

相關問題