如何快速跑起来
前言
Adnc
是一个轻量级的.Net Core
微服务快速开发框架,集成了一系列微服务配套组件。如果只是想本地调试,只需要安装必备软件,必备软件除开发工具外,建议大家都使用docker
安装。如何安装docker
,官方网站上有各种环境下的 安装指南。
微服务最核心的服务自动注册/发现/配置,adnc
使用consul
实现,因为在代码中做了限制,调试环境不会启动。当然如果你已经安装好了cosnul
环境,也可以自己开启,请修改如下3个文件。建议先不要开启cosnul
相关功能,先快速跑起来,consul
集群如何搭建,我会再写wiki
介绍。
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);
必备软件有哪些
1. Visual Studio 2019
Adnc
基于.Net Core 3.1
开发,并且用了部分C# 8.0
语法,所以需要安装visual studio 2019
。
2. Redis
#新建/root/data/redis目录
mkdir /root/data/redis
#进入redis目录
cd /root/data/redis
#下载已经配置好的redis.conf到当前目录,如果不能下载成功,请手工处理
wget https://raw.githubusercontent.com/AlphaYu/Adnc/master/doc/redis/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镜像文件
docker pull redis:6.0.6
#启动redis容器,监听13379端口,并挂载redis.conf与data目录
docker run -p 13379:6379 --name redis -v /root/data/redis/redis.conf:/etc/redis/redis.conf -v /root/data/redis/data:/data -d redis:6.0.6 redis-server /etc/redis/redis.conf
修改
Adnc.Usr.WebApi
、Adnc.Cus.WebApi
、Adnc.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:3.8.9-management #启动容器,监听18578,13572端口 docker run --name=rabbitmq -p 18578:15672 -p 13572:5672 -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=football -d rabbitmq:3.8.9-management
如果安装成功,我们访问
http://服务器IP:18578
,会出现登录页面。修改
Adnc.Usr.WebApi
、Adnc.Cus.WebApi
、Adnc.Maint.WebApi
3个微服务appsettings.development.json
文件的RabbitMq
节点信息"RabbitMq": { "HostName": "服务器Ip", "VirtualHost": "/", "Port": "13572", "UserName": "admin", "Password": "football" }
4. mongodb
docker pull mongo:4.4.3 docker run --name mongo -p 13017:27017 -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=football -e TZ=Asia/Shanghai -v /root/data/mongo:/data/db -v /root/data/mongo/backup:/data/backup -d mongo:4.4.3 --auth 进入mongo容器 docker exec -it mongo mongo admin use admin db.auth("admin","football") # 新建logs_dev数据库 use logs_dev # 创建一个空的test集合,logs_dev如果没有任何集合,Adnc的健康监测不能通过。 db.createCollection("test") # 创建用户 db.createUser({user:'alpha',pwd:'football',roles:[{role:'readWrite',db:'logs_dev'}]})
- 修改
Adnc.Usr.WebApi
、Adnc.Cus.WebApi
、Adnc.Maint.WebApi
3个微服务appsettings.development.json
文件的MongoDb节点信息"MongoDb": { "ConnectionString": "mongodb://用户名:密码@服务器Ip:13017/logs_dev?authSource=logs_dev", "CollectionNamingConvention": 2, "PluralizeCollectionNames": true }
5. mysql
#拉取mysql镜像
docker pull mariadb:10.5.8
#启动容器,监听13308端口,并挂载data与logs目录
docker run --name mariadb -p 13308:3306 -e MYSQL_ROOT_PASSWORD=alpha.netcore -e TZ=Asia/Shanghai -v /root/data/mariadb/logs:/var/log/mysql -v /root/data/mariadb/data:/var/lib/mysql -d mariadb:10.5.8
# 创建数据库并导入数据
cd /root/data
#下载脚本
wget https://raw.githubusercontent.com/AlphaYu/Adnc/master/doc/adnc_usr_dev.sql
wget https://raw.githubusercontent.com/AlphaYu/Adnc/master/doc/adnc_maint_dev.sql
wget https://raw.githubusercontent.com/AlphaYu/Adnc/master/doc/adnc_cus_dev.sql
#如果wget下载失败,请手动下载并上传到/root/data目录,文件地址如下
#https://github.com/AlphaYu/Adnc/tree/master/doc
# 拷贝脚本文件到mariadb容器
docker cp /root/data/adnc_usr_dev.sql mariadb:/usr/adnc_usr_dev.sql
docker cp /root/data/adnc_maint_dev.sql mariadb:/usr/adnc_maint_dev.sql
docker cp /root/data/adnc_cus_dev.sql mariadb:/usr/adnc_cus_dev.sql
# 进入容器
docker exec -it mariadb /bin/bash
# 启动mariadb client
mysql -uroot -palpha.netcore
#创建数据库 adnc_usr_dev
CREATE DATABASE IF NOT EXISTS adnc_usr_dev CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
#导入数据
use adnc_usr_dev;
source /usr/adnc_usr_dev.sql;
#创建数据库 adnc_maint_dev
CREATE DATABASE IF NOT EXISTS adnc_maint_dev CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
#导入数据
use adnc_maint_dev;
source /usr/adnc_maint_dev.sql;
#创建数据库 adnc_cus_dev
CREATE DATABASE IF NOT EXISTS adnc_cus_dev CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
use adnc_cus_dev;
source /usr/adnc_cus_dev.sql;
- 修改
Adnc.Usr.WebApi
、Adnc.Cus.WebApi
、Adnc.Maint.WebApi
3个微服务appsettings.development.json
文件的mysql节点信息"Mysql": { "ConnectionString": "Server=服务器ip;Port=13308;database=库名;uid=账号;pwd=密码;" }
必备软件安装完成,下面介绍如何启动。
启动服务端ServerApi
- 修改
Adnc.Usr.WebApi
、Adnc.Cus.WebApi
、Adnc.Maint.WebApi
、Adnc.Infr.Gateway
4个微服务的launchSettings.json
文件 注释如下代码,这是启动挂载SkyAPM
的配置,因为你没有安装skywalking
环境,注释就可以了。//注释下面代码 "SKYWALKING__SERVICENAME": "adnc.usr.webapi.dev", "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "SkyAPM.Agent.AspNetCore"
- 右键解决方案,选择多个项目启动,并点击确定
需要启动4个项目:
Adnc.Infr.Gateway
、Adnc.Cus.WebApi
、Adnc.Maint.WebApi
、Adnc.Usr.WebApi
。
实际开发过程中并不需要这样,这样介绍主要是为了快速在本地跑起来。
- 回到
Visual Studio 2019
主界面,点击启动,这样后台接口与网关就启动了。
启动前端ClientApp
- 使用
visual code
打开前端项目ClientApp
前端使用
Vue
开发,需要安装很多依赖包#安装依赖包 npm install --registry=https://registry.npm.taobao.org #启动前端页面,地址:localhost:5001,这里请耐心等待,成功后会自动打开浏览器 npm run dev
- 启动成功后,默认页面是登录页面,登录账号:
alpha2008
密码:alpha2008
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论