沉静岁月,淡忘流年
1项目简介
Adnc
Adnc是一个轻量级的.NetCore微服务快速开发框架,同时也可以应用于单体架构系统的开发。框架基于JWT认证授权、集成了一系列微服务配套组件,代码简洁、易上手、学习成本低、开箱即用。 框架前端基于Vue、后端服务基于.NetCore3.1搭建,也是一个前后端分离的框架。webapi遵循RESTful风格,框架包含用户、角色、权限、部门管理;字典、配置管理;登录、审计、异常日志管理等基础的后台管理模块。 框架对配置中心、依赖注入、日志、缓存、模型映射、认证/授权、仓储、服务注册/发现、健康检测、性能与链路监测、队列、ORM、EventBus等模块进行更高一级的自动化封装,更易于开发Asp.NET Core微服务项目。
原项目地址: https://github.com/AlphaYu/Adnc
作者博客: https://www.cnblogs.com/alphayu
2框架功能
在线项目演示:
http://adnc.aspdotnetcore.net 账号:alpha2008
密码:alpha2008
(登录页面)
(健康检测中心)
(操作日志)
(性能链路检测) 用户中心 1、用户管理 2、角色管理 3、菜单管理 4、部门管理
运维中心 1、性能链路监测 2、接口文档 3、健康检查 4、事件总线 5、字典管理 6、参数管理 7、任务管理
8、登录日志 9、操作日志
3框架技术栈
(系统所用到的技术栈)
.NET CORE 3.1
搭建。
基于
.NET Core
编写的开源网关
4分层介绍
Adnc.Infras
基础架构相关工程
Adnc.Portal
微服务相关工程
该层实现了认证、鉴权、异常捕获等公共类和中间件。所有微服务WebApi层的共享层,并且都需要依赖该层。
该层定义了DTO对象的基类、Rpc服务通用服务、应用服务类基类以及操作日志拦截器。所有微服务Application层的共享层,并且都需要依赖该层。
该层定义了Entity对象的基类、业务服务接口基类、UOW接口与拦截器、仓储接口、以及处理本地事务与分布式事务。所有微服务Core层的共享层,并且都需要依赖该层。
该层实现了一些通用帮助类。该层不依赖任何层。
该层是一个输出项目,基于Ocelot实现的Api网关,如果项目采用整体结构开发,该项目可以直接删除。ocelot网关包含路由、服务聚合、服务发现、认证、鉴权、限流、熔断、缓存、Header头传递等功能。市面上主流网关还有Kong,Traefik,Ambassador,Tyk等。
该层是一个输出项目, AspNetCore.HealthChecks组件的Dashboard,直接配置需要监测的服务地址就可以了,没有代码,关键的代码参考webapi层的AddHealthChecks()方法。
该层集成了Consul,提供服务的自动注册、发现以及系统配置读写。
该层集成了EasyCaching,负责一、二级缓存的管理,并重写了EasyCaching拦截器部分代码。
该层负责Adnc.Core.Shared仓储接口与Uow的EfCore的实现,负责mysql数据库的操作。同时也集成了Dapper部分接口,用来处理复杂查询。
该层负责Adnc.Core.Shared仓储接口的Mongodb实现,负责mongodb数据库的操作。
该层集成了RabbitMq。封装了发布者与订阅者等公共类,方便更加便捷的调用rabbitmq。
该层都是具体微服务业务的实现。
Adnc.Usr
用户中心微服务,实现了用户、角色、权限、部门管理。
Adnc.Maint
运维中心微服务,实现了登录、审计、异常日志管理以及一些配套组件的外链。
Adnc.Cus
客户中心微服务,该层主要是一些demo。
每个微服务的Migrations层是Efcore用来做数据迁移的,迁移的日志文件存放在各自Migrations目录中。
本文分享自 NetCore 从壹开始 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!