2010-08-19 74 views
0

我開始設計我公司的一個電信產品的新版本,並提供負載平衡和可伸縮性我正在考慮某種(.NET開源)ESB。我希望通過避免關係數據庫和使用(可能)非饋送到分佈式內存緩存(例如Velocity或memcached)的非事務性隊列來提高系統的吞吐量。.NET ESB性能

我從來沒有在實時系統中使用過這樣的體系結構,我擔心我在日常開發的簡單性中獲得了什麼,我在吞吐量方面失敗了(對於此應用程序而言,它是超-危急)。

我只玩過NServiceBus,所以我不知道它(或它的兄弟)是否適合作爲實時無sql應用程序的基礎。你怎麼看?

我應該如何判斷這些產品?我應該購買一個商業應用程序,避免像瘟疫一樣的ESB,或使用其他方法?

回答

2

Andrew,

當談到吞吐量時,基於並行消息的體系結構往往工作得很好。 NServiceBus專門擴展到非常高的水平,並且與非鎖定持久性存儲一起使用時,可以發揮巨大作用。當你說實時時,顯然你並沒有在這裏討論硬實時 - 因爲你仍然在Windows上,甚至不用C/C++編程。換句話說,聽起來主要目標是吞吐量而不是低延遲。我想你會發現ESB可以爲你解決問題。

+0

嗨Udi,真的,從系統的各個層面都要求100%可預測的時間不是實時的,但進入的消息必須從撥號器硬件傳送到用戶機器的固定數量毫秒,否則它們毫無價值(實時性較弱的定義)。從這個意義上講,我們既需要儘可能減少單個消息延遲,又要允許系統處理許多同時發送的消息。我們還需要將許多其他非實時系統掛起該消息流。 – 2010-08-19 23:36:20

+0

還有Rhino.Esb - 我不知道這次展會是否與NServiceBus相比? – iwayneo 2010-09-24 09:07:32

+0

Rhino.Esb的設計很大程度上取決於NServiceBus的設計 - 所以我會假設性能和吞吐量應該具有可比性。 – 2010-10-06 21:26:04