DDD 領域事件中使用分布式事務

2021-09-06 14:27:39 字數 1346 閱讀 3718

回到目錄

對於乙個聚合來說,它可能會被附加很多事件,這裡我們叫它領域事務,因為乙個聚會我們可以把它理解成乙個領域,乙個業務。對於領域事件不清楚的同學可以看看我的這篇文章《ddd~領域事件與事件匯流排》,裡面有詳細的說明,今天主要說一下領域裡的事務,即領域事件的資料處理和主邏輯裡的資料處理在同一事務裡完成。

sql2005環境使用transactionscopenomsdtc事務,它是佔佔開發的,原理是將一批操作包裹到乙個sqlconnection裡,由開發者維護接連的關閉,這也是使用時要特別注意的地方,因為如果不關閉連線,sql鏈結池會益出。

sql2008環境使用微軟自己的分布式事務實現transactionscope,它對於同乙個上下文來說,是不會被提公升為分布式事務的,這一點對sql2005要強很多。

///

///新增websystem表時,所需要的事件物件

///[serializable]

public

class

websystemcreateevent : eventbase

//////

物件主鍵

//發布領域事務

eventbus.instance.publish(new

websystemcreateevent

);trans.complete();

}return redirecttoaction("

websystemlist");

}

transactionscopenomsdtc截圖

transactionscope截圖

本地www**伺服器的msdtc為禁用狀態

回到目錄

DDD 領域事件中使用分布式事務

對於乙個聚合來說,它可能會被附加很多事件,這裡我們叫它領域事務,因為乙個聚會我們可以把它理解成乙個領域,乙個業務。對於領域事件不清楚的同學可以看看我的這篇文章 ddd 領域事件與事件匯流排 裡面有詳細的說明,今天主要說一下領域裡的事務,即領域事件的資料處理和主邏輯裡的資料處理在同一事務裡完成。環境使...

分布式 分布式事務

是資料庫執行過程中的乙個邏輯單位,由乙個有限的資料庫操作序列構成。事務的acid四大特性 原子性 atomicity 事務作為乙個整體被執行。一致性 consistency 從乙個一致的狀態轉換到另乙個一致的狀態。隔離性 isolation 多個事務併發執行時,併發事務之間互相影響的程度。永續性 d...

分布式事務 分布式事務的實現

如果在多個服務中需要對不同的資料庫進行操作。因為不同服務操作的資料庫都不同,所以保證在同乙個事務中完成操作顯然是不科學的。那實現分布式事務的思想 1 方法入口,建立一條日誌記錄,狀態定義為初始狀態,即儲存本條日誌記錄 可以儲存在資料庫中,也可以寫出到本地磁碟檔案 2 可以在非同步執行緒或在定時任務中...