Adnc如何本地調試 - 一個輕量級的.Net Core微服務開發框架

前言

     Adnc是一個輕量級的.Net Core微服務開發框架,一樣適用於單體架構系統的開發。
    若是隻是想本地調試,只須要安裝必備軟件,必備軟件除開發工具外,其它軟件建議你們都使用`docker`安裝。如何安裝`docker`,官方網站上有各類環境下的 安裝指南
    微服務最核心的服務自動註冊/發現/配置,`adnc`使用`consul`實現,由於在代碼中作了限制,調試環境不會啓動。固然若是你已經安裝好了`cosnul`環境,也能夠本身開啓,請修改以下3個文件。建議先不要開啓`cosnul`相關功能,先快速跑起來,`consul`如何配置,請參考 如何用docker consul部署到服務器
//program.cs
if (env.IsProduction() || env.IsStaging())
{
   var configuration = cb.Build();
   //從consul配置中心讀取配置
   var consulOption = configuration.GetSection("Consul").Get<ConsulConfig>();
   cb.AddConsul(new[] { consulOption.ConsulUrl }, consulOption.ConsulKeyPath);
}
//startup.cs
if (env.IsProduction() || env.IsStaging())
{
   //啓動後自動註冊服務到consul
   app.RegisterToConsul(_srvRegistration.GetConsulConfig());
}
//ServiceRegistrationHelper.cs
//獲取用戶認證、鑑權服務
var authServerAddress = (_env.IsProduction() || _env.IsStaging()) ? "adnc.usr.webapi" : "http://localhost:5010";
base.AddRpcService<IAuthRpcService>(authServerAddress, policies);

演示

GitHub

必備軟件有哪些

1. Visual Studio 2019

Adnc基於.Net Core 3.1開發,而且用了部分C# 8.0語法,因此須要安裝visual studio 2019html

2. Redis

#新建/data/redis目錄
cd /
mkdir data
cd data
mkdir redis
#進入redis目錄
cd reids
#拉取redis鏡像文件
docker pull redis
#從官網下載redis.conf,並修改配置
wget http://download.redis.io/redis-stable/redis.conf
  • 修改上面下載的配置文件redis.conf

bind 127.0.0.1 #註釋掉這部分,這是限制redis只能本地訪問

protected-mode no #默認yes,開啓保護模式,限制爲本地訪問

daemonize no#默認no,改成yes意爲以守護進程方式啓動,可後臺運行,除非kill進程(可選),改成yes會使配置文件方式啓動redis失敗,請設置成no.

dir ./ #輸入本地redis數據庫存放文件夾(可選)

appendonly yes #redis持久化(可選)
前端

#啓動redis容器,監聽13379端口,並掛載redis.conf與data目錄
docker run -p 13379:13379 --name redis -v /root/data/redis/redis.conf:/etc/redis/redis.conf -v /root/data/redis/data:/data -d redis redis-server /etc/redis/redis.conf
  • 修改Adnc.Usr.WebApiAdnc.Cus.WebApiAdnc.Maint.WebApi 3個微服務appsettings.development.json文件的redis節點信息
"Redis": {
    "MaxRdSecond": 120,
    "EnableLogging": false,
    "LockMs": 5000,
    "SleepMs": 300,
    "dbconfig": {
      "ConnectionStrings": [
        "你的redis地址:13379,password=你的密碼,poolsize=50,defaultDatabase=1,prefix="
      ],
      "ReadOnly": false
    }
  }

3. rabbitmq

#拉取rabbitmq鏡像
docker pull rabbitmq:management
#啓動容器,監聽18578,13572端口
docker run --name=rabbitmq -p 18578:15672 -p 13572:5672 -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=你的密碼 -d rabbitmq:management

若是安裝成功,咱們訪問http://服務器IP:18578,會出現登陸頁面。mysql

  • 修改Adnc.Usr.WebApiAdnc.Cus.WebApiAdnc.Maint.WebApi 3個微服務appsettings.development.json文件的RabbitMq節點信息
"RabbitMq": {
    "HostName": "服務器Ip",
    "VirtualHost": "虛擬主機",
    "Port": "13572",
    "UserName": "用戶名",
    "Password": "密碼"
  }

4. mongodb

#拉取mongodb鏡像
docker pull mongo
#啓動容器,監聽13017端口並掛載data與backup目錄
docker run --name mongo -p 13017:27017 -v /root/data/mongo:/data/db -v /root/data/mongo/backup:/data/backup -d mongo --auth
  • 修改Adnc.Usr.WebApiAdnc.Cus.WebApiAdnc.Maint.WebApi 3個微服務appsettings.development.json文件的MongoDb節點信息
"MongoDb": {
    "ConnectionStrings": "mongodb://用戶名:密碼@服務器Ip:13017/Logs",
    "CollectionNamingConvention": 2,
    "PluralizeCollectionNames": true
  }
  • 修改nlog.config monogdb配置部分

5. mysql

#拉取mysql鏡像
docker pull mariadb
#啓動容器,監聽13308端口,並掛載data與logs目錄
docker run --name mariadb -p 13308:3306 -e MYSQL_ROOT_PASSWORD=你的root密碼 --restart=always -v /root/data/mariadb/conf:/etc/mysql -v /root/data/mariadb/logs:/var/log/mysql -v /root/data/mariadb/data:/var/lib/mysql -d mariadb
  • 修改Adnc.Usr.WebApiAdnc.Cus.WebApiAdnc.Maint.WebApi 3個微服務appsettings.development.json文件的mysql節點信息
"Mysql": {
    "WriteDbConnectionString": "Server=服務器ip;Port=13308;database=庫名;uid=帳號;pwd=密碼;"
  }
  • 3個微服務的sql腳本在doc目錄中,請自行導入

必備軟件安裝完成,下面介紹如何啓動。git

啓動服務端ServerApi

  • 修改Adnc.Usr.WebApiAdnc.Cus.WebApiAdnc.Maint.WebApiAdnc.Infr.Gateway 4個微服務的launchSettings.json文件
    註釋以下代碼,這是啓動掛載SkyAPM的配置,由於你沒有安裝skywalking環境,註釋就能夠了。
//註釋下面代碼
"SKYWALKING__SERVICENAME": "adnc.usr.webapi.dev",
"ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "SkyAPM.Agent.AspNetCore"
  • 右鍵解決方案,選擇多個項目啓動,並點擊肯定

須要啓動4個項目:Adnc.Infr.GatewayAdnc.Cus.WebApiAdnc.Maint.WebApiAdnc.Usr.WebApi

Adnc如何本地調試 - 一個輕量級的.Net Core微服務開發框架
實際開發過程當中並不須要這樣,這樣介紹主要是爲了快速在本地跑起來。github

  • 回到Visual Studio 2019 主界面,點擊啓動,這樣後臺接口與網關就啓動了。
    Adnc如何本地調試 - 一個輕量級的.Net Core微服務開發框架

啓動前端ClientApp

  • 使用visual code 打開前端項目ClientApp

前端使用Vue開發,須要安裝不少依賴包web

#安裝依賴包
npm install --registry=https://registry.npm.taobao.org
#啓動前端頁面,地址:localhost:5001,這裏請耐心等待,成功後會自動打開瀏覽器
npm run dev
  • 啓動成功後,默認頁面是登陸頁面,登陸帳號:alpha2008密碼:alpha2008

問題交流

License

MIT
Free Software, Hell Yeah!redis

相關文章
相關標籤/搜索