比如說:我項目的服務接口,需要給調用者返回一個是否成功結果。因為可能并發量比較大,用rocketmq來流量削峰。我將生產者寫入到接口中,每次調這個接口,生產者發送消息,消費者監聽,并處理接口的實際業務。但是如何返回給生產者處理結果?我沒找到具體代碼方法。還是說我上面做的方法,是不可行的?求解答
1 回答

白豬掌柜的
TA貢獻1893條經驗 獲得超10個贊
首先要明白消息隊列是用于什么場景的;
絕大部分用于削峰和解耦,也有用于處理分布式事務!
然后再想想削峰的目的是什么,削峰是用于當應用處理不過來過大的并發請求時,將請求存于隊列中,用單個或多個消費者來處理請求!
這時候想要拿到請求怎么辦呢?
1.每個消費者處理完成請求,再發送消息到消息隊列中,你的生產者那方再實現消費者來消費這些處理結果信息;
然后處理你的邏輯!
2.將處理結果存于緩存等高性能組件中,通過輪詢的方式獲取任務處理結果
不管什么方式,你的請求方都應該是在你將請求消息發到隊列后立即返回的!消息結果可以用推送的方式告知(移動端的話),也可以讓請求方每個幾秒輪詢一次
處理結果;
希望對你有幫助...
添加回答
舉報
0/150
提交
取消