導讀-xmindjava
發短信mysql
減小耗時,異步下單操做,接收到參數以後寫入mq,經過多個節點去下單,而後websocket推送結果(參數中帶有clientid)web
高併發場景排隊面試
mq | 優點 | 缺點 |
---|---|---|
RabbitMQ | erlang語言開發,沒法二次維護,穩定及社區活躍度比較高 | |
RocketMQ | java,阿里系,可二度開發 | |
Kafka | 高吞吐量,通常的日誌,海量數據傳輸使用 |
咱們選擇rabbitmq的緣由是,系統比較穩定,社區維護性比較高,國內的開源項目多爲kap項目,如dubboredis
普通集羣
queue會存在某個集羣中,其餘機器上存儲的是該機器queue的配置信息(如ip等)。如上圖,若client鏈接到了實例C中要訪問位於實例B中的queue2時,就會由實例C和實例B進行通訊。
缺點sql
內部大量的數據傳輸,可靠性沒法保證
kafka-broker的副本,如broker1與broker2中有一個leader,一個broker,數據徹底一致,leader負責讀寫服務器
kafka保證topic中的每一個partition都是有序的,(每一個Topic中可能包含多個partition),這個時候要保障有序,就要保障須要有序的數據寫入一個partition
消息丟失有3個地方,1.producer未寫入,2.kafka內部異常,3.consumer未處理
** weixin關注"SpringForAll社區"實時獲取Java/Spring周邊最新動態websocket
本文由博客一文多發平臺 OpenWrite 發佈!