思考一种好的架构(二)

业务服务库最小工作单元

这种架构适用于AspNetCore

我所使用的版本是2.2

非常舒服的地方就是Startup.cs

可以在ConfigureServices注册服务

在Configure实现中间件做AOP编程,用起来不要太爽

由于Net的控制器发现机制 ( 参考 ) 也就是每个业务服务都能拥有自己的最小单元

控制器、模型(实体)、服务、Startup.cs

真正做到了微服务(只关注自己的业务,其他一概不关心)

如:

 这是一个类库,但是它拥有最小WebApi服务

有控制器入口,有业务处理服务、有实体模型

同时它只关心Order相关的业务

因为DEMO的缘故,它并没有VO、Qo、Dto模型

Vo和Qo是放在本服务中,DTO是放在业务中介者服务中

Mediator.DoMain

 后续我们在详细介绍它

因为工作单元的存在,所以跨库事务也是可以存在的,原子性就能保持良好,一起提交或者一起回滚,

我个人觉得按业务划分完全独立的服务,每一个服务都是独立运行,独立管理自己的业务库,这样做代价太大,难点太多,

同一个项目入口,按业务划分业务服务库,每个服务库单独管理自己的数据库,由工作单元去保证跨库事务的原子性,我觉得是可行的,而且微服务的初衷就是为了解耦,划分业务服务完全可以达到这个目的,为什么还要强行去拆分出独立的程序呢?

业务服务分库这个留在最后在将最后在讲,先说下单个库的架构

这次我们描述了下业务服务库最小工作单元和架构和它的前景

原文地址:https://www.cnblogs.com/AnAng/p/12606171.html