• 使用Dapr和Tye启动服务


    一、Dapr环境配置
    1.下载并安装 Dapr CLI
    使用命令

    curl -fsSL https://raw.githubusercontent.com/dapr/cli/master/install/install.sh | /bin/bash
    
    • 1

    或者您可以通过 Homebrew 进行安装

    brew install dapr/tap/dapr-cli
    
    • 1

    2.验证安装
    您可以通过重新启动您的终端/命令提示和运行以下操作来验证CLI:

    dapr
    
    • 1

    输出显示应该如下方所示:
    在这里插入图片描述

    3.初始化dapr
    Dapr 与您的应用程序一起作为sidecar运行,在自托管模式下,这意味着它是您本地机器上的一个进程。 因此,初始化 Dapr 包括获取 Dapr sidecar 二进制文件并将其安装到本地.
    此外,默认初始化过程还创建了一个开发环境,帮助简化 Dapr 的应用开发。 这包括下列步骤:

    • 运行一个用于状态存储和消息代理的Redis容器实例
    • 运行一个用于提供可观察性的Zipkin容器实例
    • 创建具有上述组件定义的 默认组件文件夹
    • 运行用于本地actor支持的Dapr placement服务容器实例

    这种推荐的开发环境需要 Docker.

    • 启动Docker
    • 运行init CLI 命令:
    dapr init
    
    • 1

    (如果提示timeout,多重拾几次,如果本地服务中存在redis,退出redis重试)

    • 验证Dapr 版本:
    dapr --version
    
    • 1

    (输出应该看起来像这样:

    CLI version: 1.2.0
    Runtime version: 1.2.0
    • 1
    • 2
    • 验证容器正在运行:
    docker ps
    
    • 1
    • 验证组件目录已初始化:在 dapr init时,CLI 还创建了一个默认组件文件夹,其中包括几个 YAML 文件,其中包含state store、elevated 和 zipkin。 Dapr sidecar, 将读取这些文件。 告诉它使用Redis容器进行状态管理和消息传递,以及Zipkin容器来收集跟踪:ls $HOME/.dapr
      您应该看到:
    bin  components  config.yaml
    
    • 1

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    redis通信,将配置文件中对应rabbitmq的部分替换为redis

    spec:
      type: pubsub.redis
      version: v1
      metadata:
      - name: redisHost
        value: localhost:6379
      - name: redisPassword
        value: ""
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    二、Tye安装
    使用命令:

    dotnet tool install -g Microsoft.Tye --version "0.11.0-alpha.22111.1"
    
    • 1

    或者,如果您已经安装了 Tye 并想要更新:

    dotnet tool update -g Microsoft.Tye --version "0.11.0-alpha.22111.1"
    
    • 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 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    –app-port :项目监听端口号。
    –dapr-http-port:dapr指定端口号,可不加,dapr会随机指定。
    –dapr-grpc-port:grpc端口号,可不加,dapr会随机指定。
    –config:config文件,可不加,不加会使用默认的。
    –components-path:dapr配置文件路径(相对路径),可不加,不加会使用默认的。

    项目启动后运行

    dapr dashboard 
    
    • 1

    可以查看dapr面板,默认是localhost:8080,查看项目的运行状态,配置信息等。
    也可以指定面板端口号:

    dapr dashboard --port 6687
    
    • 1

    2.使用tye
    打开终端,进入到解决方案文件夹下,运行命令:

    tye init
    
    • 1

    会生成一个tye.yaml配置文件。
    执行命令启动服务

    tye run
    
    • 1

    可以打开tye面板,默认是localhost:8080,查看项目的运行状态。

    更多tye使用样例以及配置

    https://github.com/dotnet/tye
    
    • 1

    配置时注意空格以及格式对齐。
    配置示例

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    注意:Dapr和tye配置redis、rabbitmq等服务时,只可以单独选dapr配置或者选tye配置,不能二者里面都配置。

  • 相关阅读:
    Springboot的房屋租赁租房系统049
    Python之面向对象(一)
    C#的Array 类使用说明
    葡萄糖氧化酶(GOD)修饰纳米金(Nano-Au)/壳聚糖(CS)/1-丁基-3-甲基咪唑六氟磷酸盐(BMIMPF6)复合材料
    如何运营b站账号?怎样实时跟踪查看b站up主数据?
    金仓数据库KingbaseES数据库参考手册(服务器配置参数13. 锁管理)
    机器人过程自动化(RPA)入门 3. 顺序、流程图和控制流程
    数据结构学习笔记——归并排序
    Springboot毕设项目共享电单车管理系统3447i(java+VUE+Mybatis+Maven+Mysql)
    【Pytorch with fastai】第 20 章 :结语与问题
  • 原文地址:https://blog.csdn.net/qq_25086397/article/details/126287835