消息队列(1):一个消息队列应该有的特点
消息隊列常見場景
異步解耦
 削峰填谷
 日志收集分析
 代替事務,最終一致
消息隊列特點
消息隊列之所以能異步,就是因為消息并不是實時處理的,那肯定會有一個存儲消息,處理消息的地方,才能達到異步效果。
 所以最簡單的消息隊列由以下三塊組成:
 消息生產者,消息處理中心,消息消費者。
1.消息堆積有處理策略
當生產者生產消息的速度大于消費者消費消息的速度時,消息就會在消息中心產生堆積。
 所以消息隊列必須能夠處理這種情況,防止消息中心無限堆積。
 一般會給消息隊列設置一個閾值,超過閾值消息將不進入消息中心,防止整個消息中心掛掉。
 這個思想和我們平時說的網絡限流是一樣的。比如微博一旦訪問量過大,超過他們所設定的閾值,一部分人就會受到影響,甚至訪問不了微博,但有些人卻幾乎沒有影響。
2.消息應該持久化
異步消息的存儲,絕對不是簡單的內存存儲,否則一旦斷電或重啟,消息就都沒有了,所以消息隊列一定會對消息做持久化操作,比如存在文件中。
 這個和redis的持久化大同小異,內存不可靠就持久化,要么到本地文件,要么存入數據庫。
3.消息應該是可靠的
消息的可靠是指:生產者生產的消息,應該可靠的被持久化保存,并被消費者消費掉。
 站在生產者的角度,消息一旦發出去,就必須被消費。
4.消息不能重復消費
雖然很多消息消費者都做了消息的冪等操作,即保證即使重復的消息也不會影響消息的結果。
 但是作為消息隊列來說,應該是不能出現消息重復的。
 所以站在消息中心的角度來看,必須要有可靠的技術手段來保證消息不被重復消費。
5.消息是有序的
這點很容易理解,某些業務場景下,消息必須是有序的。
 先發出的消息,就應該先被消費。
6.支持集群
消息隊列的高可用,防止單點故障,增加吞吐量,就必須要支持集群模式。
7.消息中間件
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的消息队列(1):一个消息队列应该有的特点的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 通过AVFoundation框架获取摄像
- 下一篇: spring boot 整合 谷歌gua
