首页
视频
资源
登录
原
Dapr 官方教程第一章(Hello World)
6168
人阅读
2021/8/27 15:24
总访问:
2537971
评论:
0
收藏:
0
手机
分类:
云产品
![](https://img.tnblog.net/arcimg/hb/896fd38e95b346f9a0d98c54b135bb94.jpg) >#Dapr 官方教程第一章(Hello World) [TOC] tn2>本教程将演示如何在您的机器上本地运行 Dapr。您将部署一个 **Node.js** 应用程序,该应用程序订阅消息并将其持久化。 (简单来说就是做一些状态管理大致如下) ![](https://img.tnblog.net/arcimg/hb/75c3d74398654adb894c755776d6a8e2.png) tn2>在这之后,将部署一个Python应用程序充当发布者,去调用并修改Node应用的状态值。 ![](https://img.tnblog.net/arcimg/hb/7b02683bef824d20987d7225ec54efb0.png) tn2>默认都是使用的Redis。 先决条件 ------------ tn2>本快速入门要求您在计算机上安装以下内容: ————Docker ————Node.js version 8 or greater ————Python 3.x 注意:在 Windows 上运行此快速入门时,最好从 python.org 而不是从 Windows 商店安装 Python。 ————Postman [可选] 安装好Dapr ------------ ```bash wget -q https://raw.githubusercontent.com/dapr/cli/master/install/install.sh -O - | /bin/bash dapr init ``` 理解代码 ------------ tn2>下载代码到本地: ```bash git clone https://github.com/dapr/quickstarts.git cd quickstarts/hello-world ``` tn2>执行`cat app.js`查看`app.js`代码。 ![](https://img.tnblog.net/arcimg/hb/aa1a75a1c3594325b43e8e6acca58f1b.png) ![](https://img.tnblog.net/arcimg/hb/6a4b326a50da458aac11917d0251c90a.png) ![](https://img.tnblog.net/arcimg/hb/cadcabb7bb194a738668f4ea0675c2df.png) ![](https://img.tnblog.net/arcimg/hb/14697e55db4c4655a6c1ba7934002412.png) 使用 Dapr 运行 Node.js 应用程序 ------------ tn2>安装依赖包 ```bash npm install ``` tn2>这将安装`express`和`body-parser`中显示的依赖项`package.json`。 使用 Dapr 运行 Node.js 应用程序 ```bash dapr run --app-id nodeapp --app-port 3000 --dapr-http-port 3500 node app.js ``` ![](https://img.tnblog.net/arcimg/hb/009f6593fce345499a5ec77b648ab873.png) tn>`--app-port`应用程序运行的端口(这里的Node应用是3000端口)。关于代码中`StateStoreName`的名字的定义为什么是`statestore`呢?那是因为存储状态定义的名称叫`statestore`,定义的路径在`~/.dapr` ```bash const stateStoreName = `statestore`; const stateUrl = `http://localhost:${daprPort}/v1.0/state/${stateStoreName}`; ``` ![](https://img.tnblog.net/arcimg/hb/b148040ae8ce48b5abd992a1aff0bbaf.png) 向服务发布消息 ------------ tn2>接着我们向node的sidecar,通过访问`neworder`方法(添加/修改)orderId数据 ```bash 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 ``` ![](https://img.tnblog.net/arcimg/hb/16573a4d2936437ab16e239be339a693.png) tn2>我们可以通过Zipkin看得很清楚。 ![](https://img.tnblog.net/arcimg/hb/47842f79d7804b7fafcc08d83b4f416e.png) 确认成功持久化 ------------ tn2>我们来看看是否将状态保存到了Redis中去了。也就是访问我们刚刚定义的`order`方法 ```bash dapr invoke --app-id nodeapp --method order --verb GET # 或者 curl http://localhost:3500/v1.0/invoke/nodeapp/method/order ``` ![](https://img.tnblog.net/arcimg/hb/f0135e7037b942dea56103d454b92a00.png) tn>到此为止,我们完成了第一幅图的案例制作。 使用 Dapr 运行 Python 应用程序 ------------ tn2>也就是我们的`app.py` ![](https://img.tnblog.net/arcimg/hb/da956ca513e74d40acd959b638f8b596.png) tn>我们可以看到该程序就是每隔一秒去修改orderId的数据。 tn2>我们开始运行这个应用程序。 ```bash # 安装依赖 pip3 install requests # 使用 Dapr 启动 Python 应用程序 dapr run --app-id pythonapp python3 app.py ``` ![](https://img.tnblog.net/arcimg/hb/3ee31a3d6f744ecea037ec8615b613df.png) tn2>我们再来看看以前的node程序,我们会发现它在不断的修改 ![](https://img.tnblog.net/arcimg/hb/735653a16e174dc59319409528ae9439.png) 清理 ------------ ```bash dapr stop --app-id nodeapp dapr stop --app-id pythonapp ``` ![](https://img.tnblog.net/arcimg/hb/4e3d93adba944a63bed489cd8cb69f36.png)
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739
👈{{preArticle.title}}
👉{{nextArticle.title}}
评价
{{titleitem}}
{{titleitem}}
{{item.content}}
{{titleitem}}
{{titleitem}}
{{item.content}}
尘叶心繁
这一世以无限游戏为使命!
博主信息
排名
6
文章
6
粉丝
16
评论
8
文章类别
.net后台框架
166篇
linux
17篇
linux中cve
1篇
windows中cve
0篇
资源分享
10篇
Win32
3篇
前端
28篇
传说中的c
4篇
Xamarin
9篇
docker
15篇
容器编排
101篇
grpc
4篇
Go
15篇
yaml模板
1篇
理论
2篇
更多
Sqlserver
4篇
云产品
39篇
git
3篇
Unity
1篇
考证
2篇
RabbitMq
23篇
Harbor
1篇
Ansible
8篇
Jenkins
17篇
Vue
1篇
Ids4
18篇
istio
1篇
架构
2篇
网络
7篇
windbg
4篇
AI
18篇
threejs
2篇
人物
1篇
嵌入式
2篇
python
13篇
HuggingFace
8篇
pytorch
9篇
opencv
6篇
最新文章
最新评价
{{item.articleTitle}}
{{item.blogName}}
:
{{item.content}}
关于我们
ICP备案 :
渝ICP备18016597号-1
网站信息:
2018-2024
TNBLOG.NET
技术交流:
群号656732739
联系我们:
contact@tnblog.net
欢迎加群
欢迎加群交流技术