• ABP微服务系列学习-使用Tye启动微服务


    Tye是微软开源的一款开发人员工具, 能够用于简化微服务以及分布式应用程序的开发、测试以及部署过程。
    Tye 的首要目标是简化微服务的开发,具体方式包括仅用一行命令执行多项服务、在容器中使用依赖项目,以及使用简单的方法探索其他服务的地址。

    安装tye#

    首先我们安装tye,使用dotnet cli命令。

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

    安装完后即可使用tye命令

    配置tye#

    首先我们使用tye init命令初始化tye.yaml配置文件
    结构大致入下:

    name: funshow
    services:
    - name: 
      project: 
    - name: 
      project:
    

    我们需要在配置文件中添加我们的服务,包括绑定端口,环境变量等。
    这里完整的配置文件如下:

    name: FunShow
    services:
    - name: auth-server
      project: apps/auth-server/src/FunShow.AuthServer/FunShow.AuthServer.csproj
      bindings:
        - protocol: https
          port: 44322
      env:
        - Kestrel__Certificates__Default__Path=../../../../etc/dev-cert/localhost.pfx
        - Kestrel__Certificates__Default__Password=e8202f07-66e5-4619-be07-72ba76fde97f
    - name: administration-service
      project: services/administration/src/FunShow.AdministrationService.HttpApi.Host/FunShow.AdministrationService.HttpApi.Host.csproj
      bindings:
        - protocol: https
          port: 44367
      env:
        - Kestrel__Certificates__Default__Path=../../../../etc/dev-cert/localhost.pfx
        - Kestrel__Certificates__Default__Password=e8202f07-66e5-4619-be07-72ba76fde97f
    - name: identity-service
      project: services/identity/src/FunShow.IdentityService.HttpApi.Host/FunShow.IdentityService.HttpApi.Host.csproj
      bindings:
        - protocol: https
          port: 44388
      env:
        - Kestrel__Certificates__Default__Path=../../../../etc/dev-cert/localhost.pfx
        - Kestrel__Certificates__Default__Password=e8202f07-66e5-4619-be07-72ba76fde97f
    - name: logging-service
      project: services/logging/src/FunShow.LoggingService.HttpApi.Host/FunShow.LoggingService.HttpApi.Host.csproj
      bindings:
        - protocol: https
          port: 45124
      env:
        - Kestrel__Certificates__Default__Path=../../../../etc/dev-cert/localhost.pfx
        - Kestrel__Certificates__Default__Password=e8202f07-66e5-4619-be07-72ba76fde97f
    - name: web-gateway
      project: gateways/web/src/FunShow.WebGateway/FunShow.WebGateway.csproj
      bindings:
        - protocol: https
          port: 44325
      env:
        - Kestrel__Certificates__Default__Path=../../../../etc/dev-cert/localhost.pfx
        - Kestrel__Certificates__Default__Password=e8202f07-66e5-4619-be07-72ba76fde97f  
    

    bindings表示我们绑定https以及端口号。
    env里面配置了我们的本地开发HTTPS证书。

    创建本地证书#

    上面配置里面我们有加载本地证书,那么怎么创建证书呢,在tye仓库中也有说明
    https://github.com/dotnet/tye/blob/main/docs/tutorials/hello-tye/00_run_locally.md#generate-the-certificate
    仓库中是在linux环境,但是在windows环境中localhost.conf是一样的

    [req]
    default_bits       = 2048
    default_keyfile    = localhost.key
    distinguished_name = req_distinguished_name
    req_extensions     = req_ext
    x509_extensions    = v3_ca
    
    [req_distinguished_name]
    commonName                  = Common Name (e.g. server FQDN or YOUR name)
    commonName_default          = localhost
    commonName_max              = 64
    
    [req_ext]
    subjectAltName = @alt_names
    
    [v3_ca]
    subjectAltName = @alt_names
    basicConstraints = critical, CA:false
    keyUsage = keyCertSign, cRLSign, digitalSignature,keyEncipherment
    
    [alt_names]
    DNS.1   = localhost
    DNS.2   = 127.0.0.1
    

    创建etc/dev-cert目录,在目录下添加localhost.conf文件,内容如上。
    然后执行dotnet dev-certs命令

    dotnet dev-certs https -v -ep localhost.pfx -p e8202f07-66e5-4619-be07-72ba76fde97f -t
    

    就会在目录下面生成localhost.pfx证书文件。

    使用tye运行微服务#

    在目录下面执行tye运行命令

    tye run --watch
    

    效果如下:


    当然运行服务前我们需要把我们的基础服务都启动,如数据库,消息队列,redis等。
    在tye dashboard可以查看服务的日志以及Metrics信息



    下面是服务启动页面。
    网关服务



    认证服务


    到这我们后端功能就基本完成啦

  • 相关阅读:
    北京/上海/广州/深圳DAMA-CDGA/CDGP数据治理认证报名条件
    leetcode做题笔记169. 多数元素
    技术知识点汇总-20220720
    【MySql进阶】索引详解(二):Mysql InnoDB索引原理、B+树、聚簇索引、二级索引、联合索引
    【微服务】微服务架构
    spark基础
    骚扰电话查询源码
    12家硬件厂商发布飞桨生态发行版 软硬一体协同发展
    笔试题记录
    Java面向对象进阶3——多态的概述及特点
  • 原文地址:https://www.cnblogs.com/fanshaoO/p/17170714.html