概述
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
驗證如下,安裝成功
執行Hello World 程式
能夠看到暴露兩個 endpoint
是 HTTP
訪問
部署一個Python應用程式以充當釋出者。 下面的架構圖顯示了新元件的新增:
需要以下準備環境:
- 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
顯示如下,啟動成功
安裝完成測試
此時控制檯會顯示如下
最後get測試獲取
本作品採用《CC 協議》,轉載必須註明作者和本文連結