dapr快速開始

程式碼的壞味道發表於2021-04-14

概述

Dapr 是一個可移植的、事件驅動的執行時,它使任何開發人員能夠輕鬆構建出彈性的、無狀態和有狀態的應用程式,並可執行在雲平臺或邊緣計算中,它同時也支援多種程式語言和開發框架。

dapr

安裝

1.mac環境
2.HomeBrew下載安裝Dapr CLI

brew install dapr/tap/dapr-cli

3.安裝docker
4.初始化

dapr init

5.驗證dapr版本

dapr --version

6.驗證容器執行

docker ps

驗證如下,安裝成功
dapr快速開始

執行Hello World 程式

能夠看到暴露兩個 endpointHTTP 訪問

dapr快速開始

部署一個Python應用程式以充當釋出者。 下面的架構圖顯示了新元件的新增:

dapr快速開始

需要以下準備環境:

  • node.js版本8 或者更高
  • python3.x

案例

1.下載

git clone https://github.com/dapr/quickstarts.git
cd quickstarts/hello-world

Dapr CLI為Dapr埠建立一個環境變數,預設為3500
stateUrl 是Dapr 提供的Url
stateStoreName是提供給狀態儲存的名稱

const daprPort = process.env.DAPR_HTTP_PORT || 3500;
const stateStoreName = `statestore`;
const stateUrl = `http://localhost:${daprPort}/v1.0/state/${stateStoreName}`;

該介面可以接收和處理新訂單訊息的終結點。
它首先記錄傳入的訊息,然後透過將狀態陣列釋出到/ state / 端點來將訂單ID持久化到Redis儲存中。

app.post('/neworder', (req, res) => {
    const data = req.body.data;
    const orderId = data.orderId;
    console.log("Got a new order! Order ID: " + orderId);

    const state = [{
        key: "order",
        value: data
    }];

    fetch(stateUrl, {
        method: "POST",
        body: JSON.stringify(state),
        headers: {
            "Content-Type": "application/json"
        }
    }).then((response) => {
        if (!response.ok) {
            throw "Failed to persist state.";
        }

        console.log("Successfully persisted state.");
        res.status(200).send();
    }).catch((error) => {
        console.log(error);
        res.status(500).send({message: error});
    });
});

使用Dapr執行Node.js應用

1.下載npm依賴

npm install

2.使用Dapr執行Node.js程式(node在指定的3000埠執行)

dapr run --app-id nodeapp --app-port 3000 --dapr-http-port 3500 node app.js

顯示如下,啟動成功
dapr快速開始

安裝完成測試

dapr快速開始

此時控制檯會顯示如下

dapr快速開始
最後get測試獲取

dapr快速開始

本作品採用《CC 協議》,轉載必須註明作者和本文連結
cfun

相關文章