今天了解了一下訊息中介軟體,對現在比較流行且用的廣泛的訊息中介軟體進行分析總結。
1.rabbitmq
2.kafka
3.nsq
4.redis
主要針對以上四款進行說明,其它不說明是因為網上已經很多部落格進行了分析和比較,以及說明了為什麼不實用的原因。
首先對其適用的場景進行說明:
rabbitmq: 資料可靠性高,適用於業務資料較多的場景,例如:訂單的處理,使用者註冊處理。
kafka:資料高吞吐,適用於日誌收集,大資料分析等場景
nsq:高吞吐,go語言開發,對訊息的完整性支援稍微弱一線,文件資料較少,出發適用go語言做為開發語言否則不建議使用
redis:作為nosql,可作為輕量級的訊息中介軟體,開發量會大一點,需要自行實現可靠性,生產消費唯一性等。不過對小資料的訊息佇列支援效能完爆rabbitmq。可用於已經使用了redis 的專案做為中介軟體的使用。
對於中介軟體的使用原因:
1.對複雜系統的解藕,方便不同系統或者不同部門自建的配合開發
2.對不確定的高併發進行消峰。一面突然而來的高流量對系統或者資料庫造成影響。
3.非同步處理。對於邏輯處理時間較長的部分進行非同步。
中介軟體不建議採用的原因:
1.專案複雜度不高的專案不建議採用,因為中介軟體可能會提高專案的複雜度
2.專案流量不是很大的專案不建議採用。
3.專案邏輯複雜度不高的不建議採用
4.專案初期不建議採用。因為可能會牽扯大量的精力和不確定性,造成專案的不穩定
5.專案很穩定的不建議採用。因為本身很穩定,引入中介軟體,如果中介軟體掛了,之前的都廢了。
以上可根據專案情況和專案日後規劃綜合考慮進行選用,如果有說的不對的地方希望大家諒解。
中介軟體 訊息中介軟體學習總結
冪等 在程式設計中.乙個冪等操作的特點是其任意多次執行所產生的影響均與一次執行的影響相同。冪等函式,或冪等方法,是指可以使用相同引數重複執行,並能獲得相同結果的函式。這些函式 不會影響系統狀態,也不用擔心重複執行會對系統造成改變。例如,getusername 和settrue 函式就是乙個冪等函式....
訊息中介軟體
1.訊息的優先順序 2.訊息排序 3.訊息過濾 4.訊息持久化 5.訊息重試 6.事務的支援 7.broker滿 生產者,佇列,消費者 訊息佇列的優點 1 解耦2 非同步訊息,系統響應 在jms中,有兩種訊息模型 點對點模式和發布訂閱模式。1.在點對點模式中 有三種角色 1 訊息佇列,傳送者,接受者...
訊息中介軟體
如何理解訊息中介軟體?訊息中介軟體是儲存訊息的乙個容器,與資料庫不同的是資料庫儲存的資料是可以被修改的,而訊息中介軟體一般不會被修改 訊息中介軟體在消費的生產者與消費者產生,相當於乙個中間人的角色,提供了路由保證訊息的傳遞,如果消費者不能及時接收,訊息會保留下來,知道消費者上線 保證在存活期內 訊息...