簡體   English   中英

NServiceBus Sagas 中使用了哪些事務?

[英]What transactions are used in NServiceBus Sagas?

我使用 Azure 表存儲進行持久化,使用 Azure 服務總線進行傳輸,我想知道在 saga 處理程序中進行了哪些事務? 它與普通處理程序相同嗎?

我之所以這么問是因為我看到數據庫更改(SqlBulkCopy,通常在環境事務中登記)發生多次。 在這種情況下,我直接從 Saga 訪問數據庫以“單線程”處理消息,但它似乎不起作用。

Azure 服務總線傳輸僅支持以下傳輸事務級別

  1. SendsAtomicWithReceive(默認)
  2. 只收
  3. 沒有任何

它不支持事務范圍級別。 這就是你要找的。

這是為什么? Azure 服務總線不允許發生任何環境事務。 任何與業務相關的數據操作都將被排除在處理程序事務之外。 為避免重復寫入業務數據,您需要實現冪等性,以確保在重試消息時不會多次寫入相同的業務數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM