上一篇大概的整理了一下在vm虛擬機器器下通過docker部署dapr應用,作服務之間呼叫的例子。
今天整理一下windows下dapr的非docker部署偵錯,畢竟大部分開發不需要花費太多時間做部署。
原始碼還是來自上一篇的例子,程式碼就不再貼出來了。 exercisebook/Dapr/DaprDemo at main · liuzhixin405/exercisebook (github.com)
首先windows電腦下面需要安裝dapr的sdk,官方檔案跳轉安裝 Dapr CLI | Dapr 檔案庫
安裝完docker後初始化一下dapr,最後通過dapr--version驗證下安裝是否成功和版本號。
看官方檔案,往後的操作就是docker相關的,如果windows下不想裝docker可以跳過,而且我的電腦有vm虛擬機器器,安裝docker需要關閉hyper-x, 虛擬機器器和win下面安裝cento或docker最頭痛的是hyper-x不能共存,而且沒必要都要裝。
下面的教學跟docker和虛擬機器器無任何關。
繼續翻看檔案,在不使用diocker的情況下子託管模式執行dapr,
就是這個命令 dapr init --slim ,會初始化winows的dapr 執行時環境。
操作方式: 不使用 Docker 在自託管模式下執行 Dapr | Dapr 檔案庫
安裝完後可以看到在本機的使用者賬號下生成的目錄,開啟components資料夾,會看到statestore.yaml檔案,是不是有點熟悉,這就是狀態管理和釋出訂閱預設的儲存容器redis設定。
因為有了這個檔案的設定,所以啟動我們自己的服務前需要把我們的redis跑起來,如果有密碼需要填上去。
下面偵錯我們的服務分兩步走。
第一步啟動兩個服務
第二部當讓又是熟悉的附加程序了。
首先分目標在專案資料夾下面執行這兩個命令
dapr run --app-id getwf --app-port 5053 dotnet run
dapr run --app-id clientservice --app-port 5277 dotnet run
因為本地偵錯沒有跟上一篇一樣給指定--dapr-http-port的埠,而且在windows下面啟動會需要launchSettings.json這個檔案,所以埠是改檔案設定好的http的埠。
如果不是指定launchSettings.json的埠,會有提示埠已指定該檔案的http和https埠。
下面就是附加程序了,首先把程式碼打好斷點,再把這兩個程序加入到vs中,一下子不能同時新增兩個程序,加完Server再加Client,沒有先後順序。
下面就來偵錯程式碼了,輸入client請求的介面地址,client寫了紀錄檔,server沒有寫,所以控制檯只列印client輸出的資訊:
總結,dapr的偵錯確實非常簡單,而且不需要一點複雜的偵錯環境,真的非常不錯。學習成本不僅僅非常低,而且部署也不復雜。
下面是一個dapr服務紀錄檔釋出訂閱的例子
exercisebook/Dapr/DaprLogger at main · liuzhixin405/exercisebook (github.com)