思考一种好的架构(二)
业务服务库最小工作单元
这种架构适用于AspNetCore
我所使用的版本是2.2
非常舒服的地方就是Startup.cs
可以在ConfigureServices注册服务
在Configure实现中间件做AOP编程,用起来不要太爽
由于Net的控制器发现机制 ( 参考 ) 也就是每个业务服务都能拥有自己的最小单元
控制器、模型(实体)、服务、Startup.cs
真正做到了微服务(只关注自己的业务,其他一概不关心)
如:
这是一个类库,但是它拥有最小WebApi服务
有控制器入口,有业务处理服务、有实体模型
同时它只关心Order相关的业务
因为DEMO的缘故,它并没有VO、Qo、Dto模型
Vo和Qo是放在本服务中,DTO是放在业务中介者服务中
Mediator.DoMain
后续我们在详细介绍它
因为工作单元的存在,所以跨库事务也是可以存在的,原子性就能保持良好,一起提交或者一起回滚,
我个人觉得按业务划分完全独立的服务,每一个服务都是独立运行,独立管理自己的业务库,这样做代价太大,难点太多,
同一个项目入口,按业务划分业务服务库,每个服务库单独管理自己的数据库,由工作单元去保证跨库事务的原子性,我觉得是可行的,而且微服务的初衷就是为了解耦,划分业务服务完全可以达到这个目的,为什么还要强行去拆分出独立的程序呢?
业务服务分库这个留在最后在将最后在讲,先说下单个库的架构
这次我们描述了下业务服务库最小工作单元和架构和它的前景
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!