2010-02-18 142 views
15

我正在編寫消息隊列系統。消息隊列系統

我的問題是...這是更好的做文件或數據庫這個隊列?

如果我要選擇數據庫,它需要每秒檢查一次新的作業,這對我來說似乎有點開銷?

如果是文件,我想你只是不斷監視文件夾,並基於該文件執行?

BR,

回答

28

不要reinventthewheel

[編輯:2014年更新,現在鏈接到兔子MQ,因爲Ayende已經開始製作文檔數據庫而不是消息隊列,但後來RabbitMQ又來了。我不會寫這一點,但現在的職位需要30個字符,所以我需要喋喋不休了一下。]

2

這取決於你的要求,但如果你需要排隊多個消息作爲單個組,你需要某種形式的事務支持。在這種情況下,數據庫就是你的朋友。

3

,因爲你想要寫一個消息會如何想看看MSMQ

+0

由於你經常不在meta上,我在這裏發表評論讓你知道我在meta上回復了你對這個問題的文章。 –

2

你寫一個消息隊列系統隊列系統;或者這只是解決更大問題的一部分?

我會建議不寫一個新的消息隊列系統。您可以使用MSMQ或其他現成品。

5

什麼是您決定「更好」的標準?性能?可擴展性?可靠性?成本?

基本的權衡是:

數據庫 - 事務支持,完整性保證(通過約束),更豐富的查詢支持,可能會變得更好(取決於實現)

文件系統 - 更便宜,更簡單, (至少在最初)

您可能需要先看看現有的解決方案 - MSMQ,SQL Server代理,開源庫如Rhino隊列(http://ayende.com/Blog/archive/2008/08/01/Rhino-Queues.aspx