
Dapr 官方教程第一章(Hello World)
本教程将演示如何在您的机器上本地运行 Dapr。您将部署一个 Node.js 应用程序,该应用程序订阅消息并将其持久化。
(简单来说就是做一些状态管理大致如下)
在这之后,将部署一个Python应用程序充当发布者,去调用并修改Node应用的状态值。
默认都是使用的Redis。
先决条件
本快速入门要求您在计算机上安装以下内容:
————Docker
————Node.js version 8 or greater
————Python 3.x 注意:在 Windows 上运行此快速入门时,最好从 python.org 而不是从 Windows 商店安装 Python。
————Postman [可选]
安装好Dapr
wget -q https://raw.githubusercontent.com/dapr/cli/master/install/install.sh -O - | /bin/bash
dapr init
理解代码
下载代码到本地:
git clone https://github.com/dapr/quickstarts.git
cd quickstarts/hello-world
执行cat app.js
查看app.js
代码。
使用 Dapr 运行 Node.js 应用程序
安装依赖包
npm install
这将安装express
和body-parser
中显示的依赖项package.json
。
使用 Dapr 运行 Node.js 应用程序
dapr run --app-id nodeapp --app-port 3000 --dapr-http-port 3500 node app.js
--app-port
应用程序运行的端口(这里的Node应用是3000端口)。关于代码中StateStoreName
的名字的定义为什么是statestore
呢?那是因为存储状态定义的名称叫statestore
,定义的路径在~/.dapr
const stateStoreName = `statestore`;
const stateUrl = `http://localhost:${daprPort}/v1.0/state/${stateStoreName}`;
向服务发布消息
接着我们向node的sidecar,通过访问neworder
方法(添加/修改)orderId数据
dapr invoke --app-id nodeapp --method neworder --data '{"data": { "orderId": "42" } }'
# 或者请求链接也可以
curl -XPOST -d @sample.json -H "Content-Type:application/json" http://localhost:3500/v1.0/invoke/nodeapp/method/neworder
我们可以通过Zipkin看得很清楚。
确认成功持久化
我们来看看是否将状态保存到了Redis中去了。也就是访问我们刚刚定义的order
方法
dapr invoke --app-id nodeapp --method order --verb GET
# 或者
curl http://localhost:3500/v1.0/invoke/nodeapp/method/order
到此为止,我们完成了第一幅图的案例制作。
使用 Dapr 运行 Python 应用程序
也就是我们的app.py
我们可以看到该程序就是每隔一秒去修改orderId的数据。
我们开始运行这个应用程序。
# 安装依赖
pip3 install requests
# 使用 Dapr 启动 Python 应用程序
dapr run --app-id pythonapp python3 app.py
我们再来看看以前的node程序,我们会发现它在不断的修改
清理
dapr stop --app-id nodeapp
dapr stop --app-id pythonapp
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739

