NCF的Dapr應用例項的執行

微軟技術棧發表於2022-06-21

image.png

簡介

在進行今天的主要內容之前,先帶大家瞭解一下Dapr。
Dapr 是一個可移植的、事件驅動的執行時,它使任何開發人員都可以輕鬆構建在雲和邊緣上執行的彈性、無狀態和有狀態的應用程式,幷包含語言和開發人員框架的多樣性。

▌任何語言,任何框架,任何地方

今天,我們正在經歷一波雲採用浪潮。開發人員對 Web + 資料庫應用程式架構感到滿意,例如經典的 3 層設計,但對本質上分散式的微服務應用程式架構不滿意。成為分散式系統專家很難,你也不應該這樣做。開發人員希望專注於業務邏輯,同時依靠平臺為他們的應用程式注入雲原生架構的規模、彈性、可維護性、彈性和其他屬性。

這就是 Dapr 的用武之地。Dapr 將構建微服務應用程式的最佳實踐編入稱為構建塊的開放、獨立 API,使您能夠使用您選擇的語言和框架構建可移植的應用程式。每個構建塊都是完全獨立的,您可以在應用程式中使用其中的一個、部分或全部。

使用 Dapr,您可以將現有應用程式逐步遷移到微服務架構,從而採用雲原生模式,例如橫向擴充套件/縮減、彈性和獨立部署。

此外,Dapr 與平臺無關,這意味著您可以在本地、任何 Kubernetes 叢集、虛擬機器或物理機以及 Dapr 整合的其他託管環境中執行您的應用程式。這使您能夠構建可以在雲和邊緣執行的微服務應用程式。

▌雲和邊緣的微服務構建塊

在構建微服務應用程式時有許多考慮因素。Dapr 在構建開發人員可以以標準方式使用並部署到任何環境的微服務應用程式時,為常用功能提供了最佳實踐。它通過提供分散式系統構建塊來做到這一點。

這些構建塊 API 中的每一個都是獨立的,這意味著您可以在應用程式中使用它們中的一個、部分或全部。

▌邊車架構

Dapr 將其 HTTP 和 gRPC API 公開為 sidecar 架構,既可以作為容器也可以作為程式,不需要應用程式程式碼包含任何 Dapr 執行時程式碼。這使得與 Dapr 的整合很容易與其他執行時整合,並提供應用程式邏輯的分離以提高可支援性。

▌自託管本地開發

在自託管模式下,Dapr 作為一個單獨的 sidecar 程式執行,您的服務程式碼可以通過 HTTP 或 gRPC 呼叫該程式。每個正在執行的服務都有一個 Dapr 執行時程式(或 sidecar),它被配置為使用狀態儲存、釋出/訂閱、繫結元件和其他構建塊。

您可以使用Dapr CLI在本地計算機上執行啟用 Dapr 的應用程式。下圖顯示了使用 CLIinit命令配置時 Dapr 的本地開發環境。

看完上述文章,我們大家需要有一個共識的概念就是,Dapr它是邊車模式,下圖中箭頭所指的地方就是邊車,是不是一下子就知道Dapr是什麼樣的印象了。

你可以理解為是一些附加的服務,當然它也意味著,將是一個無所不能的服務。

知道NCF的小夥伴們都知道,不知道的小夥伴們可以到NCF Docs中去一睹NCF的真容。( NeuCharFramework)是一整套可用於構建基礎專案的企業級通用 .NET 框架,嚴格遵循 DDD 設計模式,包含了基礎的快取、資料庫、模型、驗證及配套管理後臺,高度模組化, 具有高度的可擴充套件性和耐造性。

NCF具有簡單,靈活,可擴充套件的特性,現在給他加上Dapr,你可以想象一下,它將更大限度的為開發者夥伴提供更多的能力,下面我們就來看看NCF的Dapr版。

NCF Docs:

https://www.ncf.pub/Docs#sort...

步驟

  • 下載NCF原始碼
  • 開啟Visual Studio,並開啟Dapr分支原始碼
  • 修改資料庫配置
  • 修改Redis配置
  • 編譯專案docker-compose
  • 啟動Docker
  • 檢查Docker執行狀態
  • 配置Docker共享資料夾目錄
  • 執行

實施

  • 下載NCF原始碼

下載地址:
https://github.com/NeuCharFra...

分支:Developer-front-DDD-Dapr-20220218

  • 開啟Visual Studio,並開啟Dapr分支原始碼
    0fbe2ff508c8c46016c8984f58eb6b5.jpg

開啟原始碼後如圖所示
Senparc.Web 主執行專案
XncfModules/  Xncf模組目錄
docker-compose  docker執行專案

  • 修改資料庫配置
    開啟資料庫配置檔案
    cab3ddb9e0bfa7a35d8bf9a01a00a0c.jpg

修改Sql-Server節點的內容,如下所示
cab3ddb9e0bfa7a35d8bf9a01a00a0c.jpg
修改這三個位置即可

  • 修改Redis配置

設定docker-compose為啟動項
b11dcf4fba84e6495ddf3e20ad1866a.jpg

b1de1b24eb4ae0ffd49fa2dd899737c.jpg

如果啟動的時候提示xxx容器不存在,則需要新增專案容器的支援,右鍵專案新增Docker支援
bb93058da0bb83f6f0e260578a2aac1.jpg
需要檢視docker容器執行中的redis中的配置資訊
e83968bc09b6e6c79c43b88d0ba0b48.jpg

  • 編譯專案docker-compose
    8e1fe00d238d790178d69549ade31ed.jpg
  • 啟動Docker
  • 檢查Docker執行狀態
    77ce5fdf0a59d25ee5def2eaa880824.jpg

在Docker執行的桌面圖示上右鍵,就能看到docker執行是否正常

配置Docker共享資料夾目錄

進入windows版,docker desktop主介面,看到如下圖的設定圖示,點選進入
2d3d7e99f5abd92077cf72fb2de9ecc.jpg

給共享的資料夾授權

e2338069452d10b7b4376c5782893b8.jpg

為什麼要給資料夾授權呢,因為docker本身是一個容器環境,獨立於本身的作業系統,如果要與作業系統中的資料夾通訊或者傳遞,則需要用到共享,掛載等功能,因此需要共享資料夾

  • 執行
    9f53577845c726c97b931da7db6d8e4.jpg

微軟最有價值專家(MVP)

微軟最有價值專家是微軟公司授予第三方技術專業人士的一個全球獎項。29年來,世界各地的技術社群領導者,因其線上上和線下的技術社群中分享專業知識和經驗而獲得此獎項。

MVP 是經過嚴格挑選的專家團隊,他們代表著技術最精湛且最具智慧的人,是對社群投入極大的熱情並樂於助人的專家。MVP 致力於通過演講、論壇問答、建立網站、撰寫部落格、分享視訊、開源專案、組織會議等方式來幫助他人,並最大程度地幫助微軟技術社群使用者使用 Microsoft 技術。

更多詳情請登入官方網站:https://mvp.microsoft.com/zh-cn

相關文章