修改分布式事件设计
This commit is contained in:
parent
96efda9aaf
commit
919e592d28
129
notes/helloshop/distributed-event-dapr.md
Normal file
129
notes/helloshop/distributed-event-dapr.md
Normal file
@ -0,0 +1,129 @@
|
||||
# 分布式事件最佳实践
|
||||
|
||||
## 安装 Dapr CLI 脚手架工具
|
||||
|
||||
https://docs.dapr.io/zh-hans/getting-started/install-dapr-cli
|
||||
|
||||
## 基于容器初始化 Dapr 运行时
|
||||
|
||||
https://docs.dapr.io/zh-hans/getting-started/install-dapr-selfhost
|
||||
|
||||
```shell
|
||||
dapr init
|
||||
```
|
||||
|
||||
## 不用容器离线初始化 Dapr 运行时
|
||||
|
||||
```shell
|
||||
dapr init -s
|
||||
```
|
||||
|
||||
|
||||
## 使用离线包初始化 Dapr 运行时
|
||||
|
||||
https://docs.dapr.io/zh-hans/operations/hosting/self-hosted/self-hosted-airgap/
|
||||
|
||||
```shell
|
||||
dapr init --from-dir C:\daprbundle
|
||||
```
|
||||
|
||||
## 打开默认初始化目录
|
||||
|
||||
```shell
|
||||
explorer "$env:USERPROFILE\.dapr"
|
||||
explorer "%USERPROFILE%\.dapr"
|
||||
```
|
||||
|
||||
## 使用 Dashboard 查看 Dapr 运行状态
|
||||
|
||||
```shell
|
||||
dapr dashboard
|
||||
```
|
||||
|
||||
## 发布订阅配置分布式事件
|
||||
|
||||
```shell
|
||||
/components/redis-pubsub.yaml
|
||||
```
|
||||
|
||||
### 基于 Redis 发布订阅配置
|
||||
|
||||
```yaml
|
||||
apiVersion: dapr.io/v1alpha1
|
||||
kind: Component
|
||||
metadata:
|
||||
name: pubsub
|
||||
spec:
|
||||
type: pubsub.redis
|
||||
version: v1
|
||||
metadata:
|
||||
- name: redisHost
|
||||
value: localhost:6379
|
||||
- name: redisPassword
|
||||
value: ""
|
||||
```
|
||||
|
||||
### 基于 RabbitMQ 发布订阅配置
|
||||
|
||||
```shell
|
||||
/components/rabbitmq-pubsub.yaml
|
||||
```
|
||||
|
||||
```yaml
|
||||
apiVersion: dapr.io/v1alpha1
|
||||
kind: Component
|
||||
metadata:
|
||||
name: pubsub
|
||||
spec:
|
||||
type: pubsub.rabbitmq
|
||||
version: v1
|
||||
metadata:
|
||||
- name: host
|
||||
value: "amqp://guest:guestpwd@localhost:5672"
|
||||
- name: durable
|
||||
value: "false"
|
||||
- name: deletedWhenUnused
|
||||
value: "false"
|
||||
- name: autoAck
|
||||
value: "false"
|
||||
- name: reconnectWait
|
||||
value: "0"
|
||||
- name: concurrency
|
||||
value: parallel
|
||||
```
|
||||
|
||||
### 使用 Dapr 命令启动 Sidecar 和应用程序
|
||||
|
||||
```shell
|
||||
dapr run --app-id myapp --dapr-http-port 3500 --dapr-grpc-port 50001 --app-port 5000 --log-level debug --config ./configuration/config.yaml --components-path ./components dotnet run
|
||||
```
|
||||
|
||||
## 使用 Aspire 命令启动 Sidecar 和应用程序
|
||||
|
||||
```shell
|
||||
dotnet add package Aspire.Hosting.Dapr
|
||||
```
|
||||
|
||||
```csharp
|
||||
var pubsub = builder.AddDaprPubSub("pubsub", new DaprComponentOptions { LocalPath = "./DaprComponents/" });
|
||||
|
||||
var productService = builder.AddProject<Projects.HelloWorld_ProductService>("productservice")
|
||||
.WithReference(identityService)
|
||||
.WithDaprSidecar()
|
||||
.WithReference(pubsub);
|
||||
|
||||
```
|
||||
|
||||
|
||||
## 使用 RabbitMQ 发布订阅配置
|
||||
|
||||
```shell
|
||||
var username = builder.AddParameter("username", secret: true);
|
||||
var password = builder.AddParameter("password", secret: true);
|
||||
|
||||
var messaging = builder.AddRabbitMQ("messaging", username, password);
|
||||
|
||||
// Service consumption
|
||||
builder.AddProject<Projects.ExampleProject>()
|
||||
.WithReference(messaging);
|
||||
```
|
Loading…
Reference in New Issue
Block a user