NCF的Dapr應用實例的運行

語言: CN / TW / HK

微軟MVP實驗室研究員

趙銘哲

山西米立信息技術有限公司 CEO & CTO,微軟最有價值專家(MVP),NeuCharFramework 計劃的核心貢獻者,2021年.Net中文社區、CSDN 社區之星,2020、2021年DotnetConfChina大會講師,具有17年開發經驗,熱愛編程事業,喜歡鑽研、分享、交流技術,擅長各種技術框架的實戰,踩坑無數,希望能與更多的小夥伴一起交流。

簡介

在進行今天的主要內容之前,先帶大家瞭解一下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=start

步驟

  • 下載NCF源碼

  • 打開Visual Studio,並打開Dapr分支源碼

  • 修改數據庫配置

  • 修改Redis配置

  • 編譯項目docker-compose

  • 啟動Docker

  • 檢查Docker運行狀態

  • 配置Docker共享文件夾目錄

  • 運行

實施

  • 下載NCF源碼

  • 下載地址:

    https://github.com/NeuCharFramework/NCF

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

  • 打開Visual Studio,並打開Dapr分支源碼

打開源碼後如圖所示

Senparc.Web 主運行項目
XncfModules/ Xncf模塊目錄
docker-compose docker運行項目
  • 修改數據庫配置

打開數據庫配置文件

修改 Sql-Server節點的內容,如下所示

修改這三個位置即可

  • 修改Redis配置

設置docker-compose為啟動項

如果啟動的時候提示xxx容器不存在,則需要添加項目容器的支持,右鍵項目添加Docker支持

需要查看docker容器運行中的redis中的配置信息

  • 編譯項目docker-compose

  • 啟動Docker

  • 檢查Docker運行狀態

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

  • 配置Docker共享文件夾目錄

進入windows版,docker desktop主界面,看到如下圖的設置圖標,點擊進入

給共享的文件夾授權

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

  • 運行

微軟最有 值專家(MVP)

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

MVP 是經過嚴格挑選的專家團隊,他們代表着技術最精湛且最具智慧的人,是對社區投入極大的熱情並樂於助人的專家。MVP 致力於通過演講、論壇問答、創建網站、撰寫博客、分享視頻、開源項目、組織會議等方式來幫助他人,並最大程度地幫助微軟技術社區用户使用 Microsoft 技術。
更多詳情請登錄官方網站:
https://mvp.microsoft.com/zh-cn

謝謝你讀完了本文!歡迎在 評論區留言 分享你的想法,並且 轉發到朋友圈

如果你對本文青睞有加,想要轉載到自己的平台, 請在後台回覆「轉載」 與我們取得聯繫!

長按識別二維碼

關注微軟中國MSDN

點擊「閲讀原文」加入微軟MVP ~