不知道服務的品質是什麼和SLA的你想實現的,在評估任何應用程序通訊服務實現時,我遵循的基本規則如下......
性能超過可靠性
- 快速消息
- 間歇消息丟失可接受
條
- 消息是不持久的
- 幾乎沒有成本
在這種情況下,像ZeroMq(和其他人一樣),產品就足夠了,因爲它工作在插座的水平,是分散的,提供了非常低在大型分佈式系統中延遲和擴展性好,開源,因此成本可以忽略不計。如果某些用例需要持久性和可靠性,則準備實施傳統消息中間件提供開箱即用(持久性,持久性,複製等)的定製解決方案。
平衡性能和可靠性
- 性能和可靠性同樣重要
- 丟失的消息不被接受
- 是持久性消息
- 需要有一定的支持
- 成本相對較低
以下是ActiveMQ,RabbitMq等產品發揮作用的地方。基於代理的中間件解決了可靠性和持久性問題,同時提供了良好的性能和可擴展性。對於中小型企業來說,支持成本通常足夠低,而不會打破銀行業務。可以肯定地說,大多數消息傳遞需求屬於這個類別,因爲它提供了對性能和可靠性的可訪問性,並且隨着應用程序的成熟,您可以根據未來的需求爲另一個犧牲另一個,而不會因爲選擇不當而丟失整個消息傳遞基礎結構幾年前。
可靠性在性能
- 可靠性是最重要的
- 消息不能被丟棄
- 消息交還出來的現成
- 集羣,HA,複製等。可立即使用。
- 需要企業級的全球支持和專業服務
- 成本高
金融公司,交易系統,銀行業務應用等,通常有這樣的要求,其中信息系統的可靠性有一美元價值的附加對此,當事情不奏效時,金錢就會流失。因此,消息持久性,HA /容錯性,故障切換都是非常重要的。如果成本不是問題,請查看像WebLogic,Websphere,SonicMQ或TIBCO等產品......這些產品非常昂貴,但都提供了可靠性,企業支持和負載下的良好性能。我已經使用SonicMQ,它是一款非常棒的產品,非常快速和可靠,但它需要一隻手臂和一條腿。
希望它有幫助...
你可能需要解釋你的情況多一點。消息頻率/消息大小在播放。您是否有持續的消息?任何HA設置(任何共享磁盤或數據庫持久存儲)?你是否打算分發多個服務器的負載? 有一些非常輕便的基於套接字的解決方案,例如http://www.zeromq.org/但是,這可能需要您重新設計一些輪子,並進行適當的設計,而不是通過擴展AMQ/JMS解決方案。在高負載的情況下,你不能只添加一臺服務器嗎? –
'你能不能在高負荷情況下添加一臺服務器......首先,你需要確定瓶頸發生的位置,以便在生產者,消費者或/和經紀人級別定位到哪裏進行擴展。 – raffian