使用silky腳手架構建微服務應用


模板簡介

使用 dotnet new 命令可以創建模板,也就是我們常說的腳手架工具。silky框架提供了兩種類型的模板,開發者可以選擇合適的模板構建微服務應用。

構建獨立應用的模板Silky.App.Template

如果開發者需要獨立的開發、管理微服務應用(將微服務應用單獨放在一個倉庫管理),可以使用Silky.App.Template模板構建微服務應用。

  1. 安裝 Silky.App.Template 模板
dotnet new --install Silky.App.Template::3.0.2
  1. 創建微服務應用

通過如下命令創建一個新的微服務應用:

dotnet new silky.module --hosttype webhost -p:i --includeinfrastr -n Demo

Silky.App.Template 模板參數:

短命令 長命令 說明 缺省值
-r --rpcToken 設置rpctoken ypjdYOzNd4FwENJiEARMLWwK0v7QUHPW
-rp --rpcPort 設置rpc端口 2200
-re --registrycentertype 服務注冊中心類型 Zookeeper
-p:r --registrycenterconnections 服務注冊中心鏈接地址 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183;127.0.0.1:2184,127.0.0.1:2185,127.0.0.1:2186
-p:re --redisenable 是否可用redis服務 true
--redisconfiguration redis服務配置 127.0.0.1:6379,defaultDatabase=0
-d --dockersupport 是否支持docker true
-do --dotnetenv 設置運行開發環境 Development
-in --includeinfrastr 是否包含基礎服務編排文件 true
-p:i --includesln 是否包括解決訪問文件 true
-p:d --dockernetwork 設置docker network silky_service_net
-ho --hosttype 設置主機類型: webhost, generalhost ,websockethost, gateway webhost

使用 Silky.App.Template 模板創建的微服務應用的目錄結構:

.
├─docker-compose          // docker-compose編排文件
│  ├─Demo                 // Demo微服務應用服務編排
│  └─infrastr             // 基礎服務編排文件
│      └─sql
└─src                     // 源代碼目錄
    ├─Demo.Application    // 應用層
    │  └─System
    ├─Demo.Application.Contracts  // 應用接口層,用於定義服務,可被其他微服務應用引用
    │  └─System
    │      └─Dtos
    ├─Demo.Database.Migrations   // 數據遷移項目(屬於基礎設施層),用於存放ef遷移文件
    ├─Demo.Domain                // 領域層,實現核心業務應用
    ├─Demo.Domain.Shared         // 領域共享層,用於存放通用的值類型,枚舉類型,可被其他微服務應用
    ├─Demo.EntityFrameworkCore   // 數據訪問層(屬於基礎設施層),提供通過efcore提供數據訪問能力
    │  └─DbContexts
    └─DemoHost                   // 主機項目,用於應用寄宿,管理應用服務生命周期
        └─Properties             // 應用啟動配置
  1. 啟動項目

進入到 ./docker-compose/infrastr 目錄,通過如下命令創建zookeeperredis服務:

# 創建一個名稱為silky_service_net的docker網絡
docker network create silky_service_net


# 使用docker-compose創建zookeeper和redis服務
docker-compose -f docker-compose.zookeeper.yml -f docker-compose.redis.yml up -d

使用visual studio 或是 rider 打開 Demo.sln 解決方案,將 DemoHost 設置為啟動項目,還原項目后,按F5啟動項目。

項目啟動后,通過瀏覽器打開地址 https://localhost:5001/index.html, 即可打開swagger在線文檔地址:

構建模塊化應用的模板Silky.Module.Template

如果開發者將所有的微服務應用統一開發、管理(將所有微服務應用存放在一個倉庫中集中管理),可以使用Silky.Module.Template模板構建微服務應用。

  1. 安裝 Silky.Module.Template 模板
dotnet new --install Silky.Module.Template::3.0.2
  1. 創建微服務應用
dotnet new silky.module --hosttype webhost -p:i --includeinfrastr --newsln -n Demo

Silky.Module.Template 模板參數:

短命令 長命令 說明 缺省值
-r --rpcToken 設置rpctoken ypjdYOzNd4FwENJiEARMLWwK0v7QUHPW
-rp --rpcPort 設置rpc端口 2200
-re --registrycentertype 服務注冊中心類型 Zookeeper
-p:r --registrycenterconnections 服務注冊中心鏈接地址 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183;127.0.0.1:2184,127.0.0.1:2185,127.0.0.1:2186
-p:re --redisenable 是否可用redis服務 true
--redisconfiguration redis服務配置 127.0.0.1:6379,defaultDatabase=0
-d --dockersupport 是否支持docker true
-do --dotnetenv 設置運行開發環境 Development
-in --includeinfrastr 是否包含基礎服務編排文件 true
-p:i --includesln 是否包括解決訪問文件 true
-p:d --dockernetwork 設置docker network silky_service_net
-ho --hosttype 設置主機類型: webhost, generalhost ,websockethost, gateway webhost
-ne --newsln 是否是一個新的解決方案 false

使用 Silky.Module.Template 模板創建的微服務應用的目錄結構:

.
├─docker-compose               // docker-compose編排文件
│  ├─Demo                      // Demo微服務應用服務編排
│  └─infrastr                  // 基礎服務編排文件
│      └─sql
└─microservices                // 各個微服務應用模塊      
    └─Demo                     // Demo微服務應用
        ├─Demo.Application     // 應用層
        │  └─System
        ├─Demo.Application.Contracts   // 應用接口層,用於定義服務,可被其他微服務應用引用
        │  └─System
        │      └─Dtos
        ├─Demo.Database.Migrations     // 數據遷移項目(屬於基礎設施層),用於存放ef遷移文件
        ├─Demo.Domain                  // 領域層,實現核心業務應用
        ├─Demo.Domain.Shared           // 領域共享層,用於存放通用的值類型,枚舉類型,可被其他微服務應用
        ├─Demo.EntityFrameworkCore     // 數據訪問層(屬於基礎設施層),提供通過efcore提供數據訪問能力
        │  └─DbContexts
        └─DemoHost                     // 主機項目,用於應用寄宿,管理應用服務生命周期
            └─Properties               // 應用啟動配置
  1. 新增一個微服務應用模塊
dotnet new silky.module --hosttype webhost -p:i -n Demo1

將新創建的微服務應用從 Demo1/microservices/Demo1 拷貝到 Demo/microservices/Demo1, Demo1/docker-compose/Demo1 拷貝到 Demo/docker-compose/Demo1,並將新模塊的微服務應用添加到解決方案中。

  1. 調式

如果開發者需要同時啟動調式多個微服務,需要更新rpc:port配置(rpc:port不能重復),並通過更新launchSettings.json更新應用服務啟動的http服務地址。將啟動項目設置為 多個啟動項目,將 Demo1HostDemoHost 設置為 啟動。這樣, 我們就可以同時調式 Demo1HostDemoHost 這兩個應用了。

開源地址

在線文檔


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM