Dapr初体验之Hello World
Dapr介绍
Dapr - Distributed Application Runtime
安装Dapr
根据官方手册安装,由于安装镜像源使用了github导致下载失败。所以手动下载,复制到了服务器路径 /usr/local/bin 目录下。
解压缩压缩文件 tar xf dapr_linux_amd64.tar.gz
运行 dapr 检查安装状态

官方教程 Hello World
- Clone 官方quickstarts仓库
git clone -b v1.5.0 https://github.com/dapr/quickstarts.git
当然,如果服务器没有安装git需要先安装gityum install -y git,虽然也是从github克隆代码,一般情况下比较顺利。
如果你的网络不给力,也可以从码云上克隆代码。
git clone -b v1.5.0 https://gitee.com/balabiu/dapr-quickstarts.git - 启动 Dapr
必要条件,已经安装docker服务。
- 运行命令
dapr init初始化 - 运行命令
dapr --version检查版本
- 查看示例代码
- 其中一个示例服务是使用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 接口,删除订单状态 |
- 使用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
- 测试服务
- 使用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
- 使用Dapr运行Python应用
这个应用会持续访问nodejs应用更新订单Id接口。
- 进入 hello-world/python 目录下
- 使用dapr启动python应用
dapr run --app-id pythonapp python3 app.py。当然,上面的nodejs应用必须保持运行。
- 停止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模式,不影响原来的程序,通过启动程序时候进行注册来来进行服务发现调用)

浙公网安备 33010602011771号