一、Dapr环境配置
1.下载并安装 Dapr CLI
使用命令
curl -fsSL https://raw.githubusercontent.com/dapr/cli/master/install/install.sh | /bin/bash
或者您可以通过 Homebrew 进行安装
brew install dapr/tap/dapr-cli
2.验证安装
您可以通过重新启动您的终端/命令提示和运行以下操作来验证CLI:
dapr
输出显示应该如下方所示:
3.初始化dapr
Dapr 与您的应用程序一起作为sidecar运行,在自托管模式下,这意味着它是您本地机器上的一个进程。 因此,初始化 Dapr 包括获取 Dapr sidecar 二进制文件并将其安装到本地.
此外,默认初始化过程还创建了一个开发环境,帮助简化 Dapr 的应用开发。 这包括下列步骤:
- 运行一个用于状态存储和消息代理的Redis容器实例
- 运行一个用于提供可观察性的Zipkin容器实例
- 创建具有上述组件定义的 默认组件文件夹
- 运行用于本地actor支持的Dapr placement服务容器实例
这种推荐的开发环境需要 Docker.
- 启动Docker
- 运行init CLI 命令:
dapr init
(如果提示timeout,多重拾几次,如果本地服务中存在redis,退出redis重试)
- 验证Dapr 版本:
dapr --version
(输出应该看起来像这样:
CLI version: 1.2.0
Runtime version: 1.2.0)
- 验证容器正在运行:
docker ps
- 验证组件目录已初始化:在 dapr init时,CLI 还创建了一个默认组件文件夹,其中包括几个 YAML 文件,其中包含state store、elevated 和 zipkin。 Dapr sidecar, 将读取这些文件。 告诉它使用Redis容器进行状态管理和消息传递,以及Zipkin容器来收集跟踪:ls $HOME/.dapr
您应该看到:
bin components config.yaml
dapr订阅模式通信 pubsub.yaml配置示例
Rabbitmq 通信
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
name: pubsub
namespace: dapr-trafficcontrol
spec:
type: pubsub.rabbitmq
version: v1
metadata:
- name: host
value: "amqp://localhost:5672"
- name: durable
value: "false"
- name: deletedWhenUnused
value: "false"
- name: autoAck
value: "false"
- name: reconnectWait
value: "0"
- name: concurrency
value: parallel
scopes:
- test1service
- test2service
redis通信,将配置文件中对应rabbitmq的部分替换为redis
spec:
type: pubsub.redis
version: v1
metadata:
- name: redisHost
value: localhost:6379
- name: redisPassword
value: ""
二、Tye安装
使用命令:
dotnet tool install -g Microsoft.Tye --version "0.11.0-alpha.22111.1"
或者,如果您已经安装了 Tye 并想要更新:
dotnet tool update -g Microsoft.Tye --version "0.11.0-alpha.22111.1"
三、启动项目
1.使用dapr
打开一个终端,进入到项目文件夹下,执行命令
dapr run
--app-id testservice
--app-port 6001
--dapr-http-port 3601
--dapr-grpc-port 60001
--config ../dapr/config/config.yaml
--config ../dapr/config/config.yaml
–app-port :项目监听端口号。
–dapr-http-port:dapr指定端口号,可不加,dapr会随机指定。
–dapr-grpc-port:grpc端口号,可不加,dapr会随机指定。
–config:config文件,可不加,不加会使用默认的。
–components-path:dapr配置文件路径(相对路径),可不加,不加会使用默认的。
项目启动后运行
dapr dashboard
可以查看dapr面板,默认是localhost:8080,查看项目的运行状态,配置信息等。
也可以指定面板端口号:
dapr dashboard --port 6687
2.使用tye
打开终端,进入到解决方案文件夹下,运行命令:
tye init
会生成一个tye.yaml配置文件。
执行命令启动服务
tye run
可以打开tye面板,默认是localhost:8080,查看项目的运行状态。
更多tye使用样例以及配置
https://github.com/dotnet/tye
配置时注意空格以及格式对齐。
配置示例
name: myapplication
extensions:
#配置使用dapr
- name: dapr
#配置使用dapr config,不配置时使用默认配置
config: "./dapr/config/config.yaml"
#配置使用dapr 配置文件,不配置 时使用默认dapr 配置
components-path: "./dapr/components/"
services:
- name: backend
project: backend/backend.csproj
bindings:
- port: 7000
- name: frontend
project: frontend/frontend.csproj
replicas: 2
bindings:
- port: 8000
- name: worker
project: worker/worker.csproj
- name: rabbit
image: rabbitmq:3-management
bindings:
- port: 5672
protocol: rabbitmq
- name: redis
image: redis
bindings:
- port: 6973
注意:Dapr和tye配置redis、rabbitmq等服务时,只可以单独选dapr配置或者选tye配置,不能二者里面都配置。