Dapr初體驗之Hello World


Dapr介紹

Dapr - Distributed Application Runtime

安裝Dapr

根據官方手冊安裝,由於安裝鏡像源使用了github導致下載失敗。所以手動下載,復制到了服務器路徑 /usr/local/bin 目錄下。
解壓縮壓縮文件 tar xf dapr_linux_amd64.tar.gz
運行 dapr 檢查安裝狀態

官方教程 Hello World

  1. Clone 官方quickstarts倉庫
    git clone -b v1.5.0 https://github.com/dapr/quickstarts.git
    當然,如果服務器沒有安裝git需要先安裝git yum install -y git,雖然也是從github克隆代碼,一般情況下比較順利。
    如果你的網絡不給力,也可以從碼雲上克隆代碼。
    git clone -b v1.5.0 https://gitee.com/balabiu/dapr-quickstarts.git
  2. 啟動 Dapr
    必要條件,已經安裝docker服務。
  • 運行命令 dapr init 初始化
  • 運行命令 dapr --version 檢查版本
  1. 查看示例代碼
  • 其中一個示例服務是使用node.js開發的,首先你需要檢查你是否有node.js運行時。如果你沒有安裝nodejs,使用包管理器安裝dnf module install nodejs:16,使用node -v檢查安裝狀態。
    現在,你可以進入到文件夾 quickstarts/hello-world/node 查看 app.js 閱讀以下程序邏輯。
    雖然沒有寫過nodejs代碼,但示例代碼是很簡單的,通過簡單閱讀基本邏輯是啟動一個http服務端,監聽幾個接口的端節點。
    很簡單的三個接口,訪問node啟動的服務接口,操作dapr。
接口 方法 邏輯
/order GET 請求 http://localhost:3500/v1.0/state/statestore/order 接口,返回訂單狀態
/neworder POST 請求 http://localhost:3500/v1.0/state/statestore/order 接口,新增訂單狀態
/order/:id DELETE 請求 http://localhost:3500/v1.0/state/statestore/order 接口,刪除訂單狀態
  1. 使用Dapr運行nodejs應用
  • 進入 quickstarts/hello-world/node 目錄
  • 運行 npm install 還原包
  • 運行 dapr run --app-id nodeapp --app-port 3000 --dapr-http-port 3500 node app.js 啟動nodejs app
  1. 測試服務
  • 使用POST方法請求接口 http://1.15.252.231:3000/neworder 新增訂單,請求數據如下:
{
    "data": {
        "orderId": "42"
    }
}

  • 使用GET方法請求接口 http://1.15.252.231:3000/order,返回訂單數據Id
  • 使用DELET方法請求接口 http://1.15.252.231:3000/order/42,刪除數據42
  1. 使用Dapr運行Python應用
    這個應用會持續訪問nodejs應用更新訂單Id接口。
  • 進入 hello-world/python 目錄下
  • 使用dapr啟動python應用 dapr run --app-id pythonapp python3 app.py。當然,上面的nodejs應用必須保持運行。
  1. 停止dapr應用
  • 列表 dapr list
  • 停止nodejs應用 dapr stop --app-id nodeapp
  • 停止python應用 dapr stop --app-id pythonapp

總結

通過這次初體驗,得到的知識點如下

  • Dapr默認初始化安裝darp init,必須有docker環境。
  • 通過Dapr的服務調用,進行了一個狀態寫入和查詢。
  • 使用dapr運行程序,是將程序注冊到了dapr。--app-id指定應用名稱,--dapr-http-port指定應用的端口后,有這這兩個參數,為以后的服務調用做准備。(這個應該就是dapr的邊車sidecar模式,不影響原來的程序,通過啟動程序時候進行注冊來來進行服務發現調用)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM