緣起今天在微信群里有同學問 ”純.net 項目,有必要上dapr嗎?”
當時不假思索的說不是微服務沒必要,其他群友也說沒必要。下午細想了一下,覺得這個和微服務沒有關系,如果我的應用是個單體架構(將所有功能都部署在一個web容器中運行的系統就叫做巨石型應用),但是它卻用到了分布式中間件,比如緩存、消息隊列,Actor模型呢,這些分布式中間件的標准化API 正是Dapr的價值所在。
看我前兩天寫的文章 為什么 Dapr 如此令人興奮 第二點,Dapr利用Sidecar的模式,把代碼中的一些橫切關注點需求(Cross-cutting)分離和抽象出來,從而達到運行環境的獨立和對外部依賴(包括服務之間)的獨立. 橫切關注點需求是無論單體還是微服務都需要處理的問題。
總之,Dapr 解決了分布式中間件的依賴問題,上層所有的語言和下層所有的基礎設施,通過一層層統一的接口進行抽象。不管用 Redis Stream 還是 Rabbit MQ,對上層業務是無感的,它會給上層業務一個統一抽象的 API ,而且是 HTTP 或者 gRPC 這樣的一個企業的 API 。開發人員不再關心底下到底是什么,進一步地讓開發人員和下面進行解耦。