Dapr Actor 的微服務架構

2022-06-29 20:51:14 字數 886 閱讀 3297

dapr中的actor模型,和orleans的virtual actor一脈相傳, 聖傑寫過一篇文章orleans 知多少 | .net core 分布式框架介紹過。簡單來講:actor模型 = 狀態 + 行為 + 訊息。乙個應用/服務由多個actor組成,每個actor都是乙個獨立的執行單元,擁有隔離的執行空間,在隔離的空間內,其有獨立的狀態和行為,不被外界干預,actor之間通過訊息進行互動,而同一時刻,每個actor只能被單個執行緒執行,這樣既有效避免了資料共享和併發問題,又確保了應用的伸縮性。

dapr actor 對於使用者,我們可以根據任意名稱去獲取乙個actor(無論它是否存在),然後就可以傳送訊息給這個actor(無論它在**)。

作為對比我們可以看看傳統微服務架構:

1、通訊模型上是節點與節點之間通訊(採用rpc形式)

2、同一種服務的多個節點是等價的(因為它們大多數是無狀態)(也就是我們的請求傳送給其中任何乙個節點都是沒區別的)。

所以在目前的微服務架構裡我們基本需要:

1、服務發現(某個服務部署在哪些節點)

2、負載均衡

因此也出現了各種 service mesh框架(比如istio),來簡化微服務開發,幫我們做這些重複的事情,應用開發者只關心業務。

但即便如此,service mesh跟dapr actor 還是有乙個顯著區別:dapr actor (從編碼來看)開發模型類似oop,開發者關注的是物件之間的(rpc)通訊/互動。 而service mesh仍然是將乙個大系統拆分成多個小系統,互動方式仍然是系統與系統之間(服務與服務之間)(可以看做是面向過程,因為服務就類似一組函式)。

微服務與微服務架構

微服務 微服務強調的是服務的大小,它關注的是某乙個點,是具體解決某乙個問題 提供落地對應服務的乙個服務應用,狹意的看,可以看作eclipse裡面的乙個個微服務工程 或者module。例如 訂單服務 支付服務 微服務架構 馬丁.福勒 martin fowler 微服務架構介紹 微服務架構是 種架構模式...

微服務架構

一 先了解一下什麼是單體應用 就是乙個應用程式包含了所有模組功能,各模組同時部署。當然這種應用模式比較容易部署 測試,但隨著專案的加大,單體模式就會變得越來越臃腫,維護的成本逐漸變高。當乙個模組出錯,整個應用都會出現問題,擴充套件能力也會受到限制。二 什麼是微服務 是將整個應用程式分解為多個模組,各...

微服務架構

簡單來說,微服務架構風格想要開發一種由多個小服務組成的應用,每個服務執行於獨立的程序,並且採用輕量級互動,多數情況下乙個http的資源api,這些服務具備獨立業務能力並可以通過自動化部署方式獨立部署,這種風格使最小化集中管理,從而可以使用多種不同的程式語言喝資料儲存技術 james lewis 和 ...