• Adnc如何本地调试


    前言

        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 2019

    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,会出现登录页面。

    • 修改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目录中,请自行导入

    必备软件安装完成,下面介绍如何启动。

    启动服务端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微服务开发框架
    实际开发过程中并不需要这样,这样介绍主要是为了快速在本地跑起来。

    • 回到Visual Studio 2019 主界面,点击启动,这样后台接口与网关就启动了。
      Adnc如何本地调试 - 一个轻量级的.Net Core微服务开发框架

    启动前端ClientApp

    • 使用visual code 打开前端项目ClientApp

    前端使用Vue开发,需要安装很多依赖包

    #安装依赖包
    npm install --registry=https://registry.npm.taobao.org
    #启动前端页面,地址:localhost:5001,这里请耐心等待,成功后会自动打开浏览器
    npm run dev
    
    • 启动成功后,默认页面是登录页面,登录账号:alpha2008密码:alpha2008

    问题交流

    License

    MIT
    Free Software, Hell Yeah!

    我改变不了世界,代码也改变不了。
  • 相关阅读:
    我们可以用JAX-WS轻松实现JAVA平台与其他编程环境(.net等)的互操作
    Eclipse 枚举类报错
    eclipse 遇关键字enum编译问题解决
    接口测试框架开发(二):extentreports报告中文乱码问题
    接口测试框架开发(一):rest-Assured_接口返回数据验证
    使用ant运行testng的testng.xml并且使用testng-results.xsl美化结果
    TestNG简单的学习-TestNG运行
    ExtentReports 结合 TestNg 生成自动化 html 报告 (支持多 suite)
    TestNG+ReportNG+Maven优化测试报告
    IDEA+MAVEN+testNG(reportNG)
  • 原文地址:https://www.cnblogs.com/alphayu/p/14087520.html
Copyright © 2020-2023  润新知