一、了解项目模块的演进
1.1、单体项目
单体项目
单模块:所有的功能模块都写在一个项目中,然后单独部署。
多模块聚合:将一个项目进行拆分为多模块管理
1.2、分布式项目
分布式项目
分布式聚合项目(不太推荐):整个项目根据提供的不同服务来拆分,不同服务可以单独作为一个微服务对象提供访问,服务与服务之间需要相互依赖。
问题:例如下面的car-service服务中的service来进行远程调用需要引入rent-service的domain模块依赖,这就会导致若是有大量不同的服务后造成不好梳理的问题。
优化聚合项目方案:
方案一(个人觉得不太行):将原本的多个mapper、service以及web进行合并为一个xx-core模块,xx-domain单独作为一个模块,然后其他服务想要进行调用那么引入对应的xx-domain依赖。
问题:可能单独的一个服务项目因为这样依赖就需要在项目启动过程时多编译几百个类,会让启动速度略慢些。
方案二:单独构建一个api模块,然后多个服务去依赖该模块,这种方案当我服务需要创建新的实体时,直接添加到该api模块中。