上篇博文中我們介紹了Azure Messaging-ServiceBus Messaging消息回執(zhí)機(jī)制。
Azure Messaging-ServiceBus Messaging消息回執(zhí)機(jī)制
本文中我們主要研究消息的事務(wù)。直奔主題:
Service Bus Queues支持事務(wù),基于TransactionScope
Service Bus Queues provide support for local transactions in the context of a single queue.
事務(wù)的限制:事務(wù)只能包含一個(gè)Queue或者Topic,訂閱不能放在事務(wù)中,同時(shí)事務(wù)不支持其他系統(tǒng),例如數(shù)據(jù)庫
那消息事務(wù)的實(shí)際應(yīng)用場(chǎng)景有哪些呢?例如:
1.啟動(dòng)一個(gè)事務(wù)性的會(huì)話,將發(fā)送更新訂單狀態(tài)消息和更新賬戶余額消息放到一個(gè)事務(wù)中,消息發(fā)送失敗后 rollback,確認(rèn)消息未被發(fā)送。
2.發(fā)送更新訂單狀態(tài)消息和更新賬戶余額消息成功后,啟動(dòng)一個(gè)事務(wù)性的會(huì)話,接收并處理這兩條消息。
那我們先從同一個(gè)隊(duì)列中發(fā)送多條消息這個(gè)場(chǎng)景驗(yàn)證:
1 public static void SendMessageTransactional() 2 { 3 var sbUtils = new ServiceBusUtils(); 4 5&