ADNC
是一个基于 .NET
平台的分布式/微服务开源框架,采用现代化的架构设计和最佳实践,同时也适用于单体架构系统的开发。它提供了一系列的工具和库,帮助开发人员快速构建和部署微服务应用程序,包括服务注册/发现、配置中心、链路跟踪、负载均衡、熔断、容错、分布式事务、分布式缓存、消息队列、RPC
调用(http
/grpc
)、认证授权、读写分离、日志记录等,同时也提供了完善的文档和示例代码,方便开发人员使用和学习。如果您正在考虑使用分布式/微服务或单体架构开发应用程序,ADNC
框架是一个值得尝试的开源框架。
微服务是一种分布式架构模式,通过将应用程序拆分成一组小型、松耦合的服务,可以提高应用程序的可伸缩性、可靠性和灵活性。
DDD
架构开发模式。MIT
许可证发布,用户可以自由地使用、修改和分享该框架的源代码。adnc
├── .github
│ └── workflows CICD脚本目录(github-action)
├── doc 技术文档目录
├── src 源代码目录
│ ├── ServerApi 后端代码目录
│ │ ├── Infrastructures 基础架构层代码目录
│ │ ├── ServiceShared 服务通用层代码目录
│ │ ├── Gateways ocelot网关代码目录
│ │ └── Demo 示例代码目录
│ └── ClientApp 前端代码目录
├── test 测试相关目录
├── .gitignore
├── README.MD
└── LICENSE
路径 | 描述 |
---|---|
src/ServerApi/Adnc.sln |
该解决方案包含adnc 所有工程 |
src/ServerApi/Infrastructures/Adnc.Infra.sln |
该解决方案仅包含基础架构层相关工程 |
src/ServerApi/ServiceShared/Adnc.Shared.sln |
该解决方案仅包含服务通用层相关工程 |
src/ServerApi/Demo/Adnc.Demo.sln |
该解决方案仅包含demo 相关工程 |
scr/ServerApi/common.props |
工程文件*.csproj 公用配置 |
scr/ServerApi/version_infra.props |
基础架构层版本号 |
scr/ServerApi/version_shared.props |
服务通用层版本号 |
scr/ServerApi/nuget.props |
Nuget 发布信息配置 |
NuGet Gallery | Packages matching adnc.infra
NuGet Gallery | Packages matching adnc.shared
名称 | 描述 |
---|---|
Ocelot | 基于 `.NET6 编写的开源网关 |
Consul | 配置中心、注册中心组件 |
Refit | 一个声明式自动类型安全的RESTful服务调用组件,用于同步调用其他微服务 |
Grpc.Net.ClientFactoryGrpc.Tools | Grpc通讯框架 |
SkyAPM.Agent.AspNetCore | Skywalking `.NET6探针,性能链路监测组件 |
Castle DynamicProxy | 动态代理,AOP开源实现组件 |
Pomelo.EntityFrameworkCore.MySql | EFCore ORM组件 |
Dapper | 轻量级ORM组件 |
Z.EntityFramework.Plus.EFCore | 第三方高性能的EfCore组件 |
NLogNlog.MongdbNlog.Loki | 日志记录组件 |
AutoMapper | 模型映射组件 |
Swashbuckle.AspNetCore | APIs文档生成工具(swagger) |
StackExchange.Redis | 开源的Redis客户端SDK |
CAP | 实现事件总线及最终一致性(分布式事务)的一个开源的组件 |
RabbitMq | 异步消息队列组件 |
Polly | 一个 .NET 弹性和瞬态故障处理库,允许开发人员以 Fluent 和线程安全的方式来实现重试、断路、超时、隔离和回退策略 |
FluentValidation | 一个 .NET 验证框架,支持链式操作,易于理解,功能完善,组件内提供十几种常用验证器,可扩展性好,支持自定义验证器,支持本地化多语言 |
Maxscale | Mariadb开发的一款成熟、高性能、免费开源的数据库中间件 |
AspNetCore.HealthChecks | 健康监测组件,搭配consul的健康监测 |
Demo公用工程
protos
grpc定义文件resources
公用的静态文件与配置文件Adnc.Demo.Shared.Const
常量文件Adnc.Demo.Shared.Rpc.Event
事件文件Adnc.Demo.Shared.Rpc.Grpc
gprc客户端Adnc.Demo.Shared.Rpc.Http
http客户端经典三层开发模式,剥离了应用服务协议定义文件到
Adnc.Demo.Usr.Application.Contracts
层
用户中心服务是系统支撑服务,实现了用户管理、角色管理、权限管理、菜单管理、组织架构管理。
经典三层开发模式,应用服务实现与协议定义都在
Adnc.Demo.Maint.Application
层
运维中心服务是系统支撑服务,实现了登录日志、审计日志、异常日志、字典管理、配置参数管理。
经典三层开发模式,控制器、应用服务实现与协议定义、仓储都在同一个工程,这种结构适合细粒度服务拆分模式。
客户中心微服务。
DDD开发模式
订单中心微服务。
DDD开发模式
仓储中心微服务。
6个测试用例覆盖了网关、服务发现、配置中心、服务间同步调用、数据库CURD、本地事务、分布式事务、缓存、布隆过滤器、SkyApm链路、Nlog日志记录、操作日志记录。
QQ群号:780634162
都看到这里了,那就点个star
吧!
MIT Free Software, Hell Yeah!