上篇博文中我們介紹了Azure Messaging的重復(fù)消息機(jī)制、At most once 和At least once.
Azure Messaging-ServiceBus Messaging消息隊(duì)列技術(shù)系列5-重復(fù)消息:at-least-once at-most-once
本文中我們主要研究并介紹Azure Messaging的消息回執(zhí)機(jī)制:實(shí)際應(yīng)用場景:
同步收發(fā)場景下,消息生產(chǎn)者和消費(fèi)者雙向應(yīng)答模式,例如:張三寫封信送到郵局中轉(zhuǎn)站,然后李四從中轉(zhuǎn)站獲得信,然后在寫一份回執(zhí)信,放到中轉(zhuǎn)站,然后張三去取,當(dāng)然張三寫信的時(shí)候就得寫明回信地址。還
有,生成訂單編號(hào)場景,發(fā)送一個(gè)生成訂單編號(hào)的消息,消息消費(fèi)者接收生成訂單編號(hào)的消息,并通過消息回執(zhí)返回。
Azure Messaging的消息回執(zhí)機(jī)制主要通過:基于帶會(huì)話的Queue/Topic、SessionId、ReplyTo屬性來實(shí)現(xiàn)
在代碼實(shí)現(xiàn)中,我們需要:
1. 兩個(gè)工作線程,一個(gè)線程用于消息發(fā)送和接收回執(zhí)消息,一個(gè)線程用于消息接收和發(fā)送消息回執(zhí)。
2. 一個(gè)會(huì)話標(biāo)識(shí):ReceiptSession
3. 兩個(gè)隊(duì)列Queue:RequestQueue:發(fā)送消息、接收消息,ResponseQueue:發(fā)送回執(zhí)消息,接收回執(zhí)消息。
直接Show Code:
首先,我們?cè)赟erviceBusMQManager增加一個(gè)線程安全的創(chuàng)建帶回話的QueueClient方法:
延伸閱讀
學(xué)習(xí)是年輕人改變自己的最好方式