思考一種好的架構(十二)

2022-02-07 00:13:54 字數 1314 閱讀 6680

程式集掃瞄庫(referencescan)

是什麼?

服務間會有各種相互依賴和引用,這勢必會造成爭奪configureservices,到最後牽一髮而動全身。於是很自然的出現了它來解決這個問題,

為什麼?

為了解決服務爭奪configureservices註冊順序而誕生的庫,他就是各個服務的帶頭人,一定是它最先註冊

怎麼做?

沒有任何引用,非常簡單

///

///掃瞄執行介面

///掃瞄後將會執行execute函式

/// public

abstract

class

basestartexecute

//////

執行函式

/// public

abstract

void

execute();

}

這就是前幾節看到的basestartexecute

public

class

scan

}foreach (var item in

startexecutes)

}public

static

void

queryassemblies()

}foreach (var item in

startexecutes)

}public

static ienumerablecreateallinstancesof(assembly assembly)

}

很簡單的功能,掃瞄所有程式集並判斷有沒有引用referencescan,因為basestartexecute在這,所以服務如果想要快人一步必須會要引用referencescan,

然後例項化並執行execute功能

它在這很簡單的服務

第一部分就到此結束了

很簡單的介紹了下用包來作為為服務劃分的soa架構

後續將會有

1、快速生成基礎設施服務、業務服務、幷包含單元測試,不再需要手動建立

2、nuget的快速交付(cd),也就是推**後自動更新版本,自動發布到倉庫

3、apidoc.swagger的支援

4、有狀態的服務

5、異常處理服務

6、操作日誌

7、...

思考一種好的架構(十二)

事件溯源 tracingsource 資料庫事件溯源實體 table name tracingsource public class tracingsourceentity 執行時間 public datetime executetimer 執行sql public string executesq...

思考一種好的架構(九)

中介者 mediator 為了解除服務間互相引用的問題,單獨劃分出來的乙個服務 它的好處時顯而易見的,服務之間的引用將會變的清晰明了 我只在業務服務庫上使用它,普通服務和基礎設施服務還是自己管自己的,沒有使用mediatr 因為我覺得它對於net core提供的中介者功能並不是很好的用,微軟自帶的i...

思考一種好的架構(二)

業務服務庫最小工作單元 這種架構適用於aspnetcore 我所使用的版本是2.2 非常舒服的地方就是startup.cs 可以在configureservices註冊服務 在configure實現中介軟體做aop程式設計,用起來不要太爽 由於net的控制器發現機制 參考 也就是每個業務服務都能擁有...