2012-02-13 64 views
3

我們的團隊負責設計和實現大型的用戶到用戶內部消息系統(類似於facebook消息)。該系統預計將處理至少10億條消息。適用於大型用戶電子郵件/消息系統的良好設計模式或開源軟件?

該系統將建立使用PHP和MySQL或一個nosql數據庫,我們開放給任何有用的技術。

像這樣的內部消息傳遞系統可能非常普遍,過去可能已經由不同公司建造過幾百次,我們不想重新發明輪子。

這樣的任務是否有任何標準設計模式在過去被使用過並保持良好?

書籍或指南或只是一般性的建議將是非常有用的。

(如果您知道任何開源的(或閉源),其推薦的軟件,這將是有益的在設計這個系統,這也將不勝感激!)

+1

可能更好的[programmers.stackexchange.com](http://programmers.stackexchange.com)?我不能決定。 – rdlowrey 2012-02-13 05:12:32

+0

我聽說FB使用XMPP http:// xmpp。org/ – Joseph 2012-02-13 05:14:54

+0

不要重新發明輪子 - 有很多預製系統可以很好地擴展。 – 2012-02-13 05:30:04

回答

2

這可能是更適合於程序員.stackexchange.com,但至少有一部分問題可以在這裏解答。

是否有任何標準設計模式?是的。

如果消息可能會成爲現場(例如聊天),那麼XMPP是一個很好的選擇。 Wikipedia sums up its strengths well and does mention a weakness.這也很好,因爲您的用戶不需要使用您的客戶端進行交談,任何XMPP客戶端都會這樣做。這是對它有利的一個重點(在我看來)。

由於這是標記PHP,這裏有兩個XMPP實現在PHP我知道的:

Lightrhttp://code.google.com/p/lightr/

Lightr是寫在面向對象的PHP5的XMPP和BOSH客戶端。它旨在由啓用了AJAX的前端按間隔運行,並利用CURL庫處理與BOSH服務器的連接。

XMPPHPhttp://code.google.com/p/xmpphp/

XMPPHP的前身是Class.Jabber.PHP,我已經承諾了多年。利用PHP5,我相信它是一個優雅的解決方案,具有直接的方法。一些功能包括: - 連接到任何XMPP 1.0服務器(Google Talk,LJ Talk,jabber.org等 - 支持TLS加密 - 一些XML處理方法和支持的樣式(過程無限期,processUntil事件,processTime爲若干秒),等待事件或將它們映射等

我沒有使用其中任何其他人可能。能夠回答你的問題的第二部分。

+0

謝謝Levi!好的答案。我沒有想過使用XMPP。你知道xmpp是否可以(容易地)擴展到數以億計的消息,以及它將消息存儲在持久性中的位置(例如它是否存儲在mysql數據庫中)? – eric 2012-02-13 06:53:48

+0

@eric我所知道的全部來自谷歌搜索。祝你好運。 – 2012-02-14 00:25:33

+0

感謝您的幫助! – eric 2012-02-14 08:19:23

相關問題