怎么降低延遲 高并發(fā)用消息隊列會延遲,還有什么好方法解決?
高并發(fā)用消息隊列會延遲,還有什么好方法解決?首先,您需要知道隊列的應(yīng)用場景在哪里。一般來說,當(dāng)后臺需要大量的邏輯處理或計算資源時,隊列也可以改善前端的用戶體驗。例如:微博-關(guān)注/粉絲。如果你有1000
高并發(fā)用消息隊列會延遲,還有什么好方法解決?
首先,您需要知道隊列的應(yīng)用場景在哪里。一般來說,當(dāng)后臺需要大量的邏輯處理或計算資源時,隊列也可以改善前端的用戶體驗。例如:微博-關(guān)注/粉絲。如果你有1000個粉絲,你發(fā)一個微博,1000個粉絲就會收到你的消息。消息隊列適合這種情況。原因:1。推送1000個動態(tài)數(shù)據(jù)是一個耗時的操作,發(fā)送微博頁面需要盡快響應(yīng),這樣就可以將任務(wù)放入隊列中。微博發(fā)送后,立即生效,但允許粉絲延遲接收微博,通過隊列實現(xiàn)也滿足需求;3.可以采用高性能集群架構(gòu)處理隊列,實現(xiàn)了關(guān)注點的分離,使系統(tǒng)的擴展更加靈活。在上圖中定義消息發(fā)送和消耗的過程
2。為消息定義消息協(xié)議,如ActiveMQ、stomp、XMPP等。定義消息協(xié)議,定義消息隊列需要滿足的場景
是否要保證消息的可靠性,必要時要保證存儲的高可用性
是否支持同步和異步消息
是否要保證消息的順序
是否需要延遲消息要支持
很多開源的實現(xiàn)功能可以參考詳細信息。例如,rocketmq是高度可靠的,Kafka是高吞吐量的,但不是高度可靠的。