随着应用的复杂度在提升,单体的应用中模块数的增加和业务的增加使得开发和维护的成本在不断的加大,因此将应用细粒度话就能带来很多好处。springcloud的出现为这种想法提供了开源的技术。但是对于应用的划分可以说是仁者见仁智者见智,不同的架构师有不同的划分考虑,因此没有说那种实现就是最好的,只有最符合当前场景的架构设计。
以下是在使用springcloud中出现的一些问题与思考,虽然很零碎但是技术就是这一点一点的积累,你的架构之所以能被大部分人接受并且觉得在使用中很顺手,那就说明针对这个项目是成功的,可以提高开发的效率和运维的方便。
1 版本的迭代与基础模块的归属划分。
现在使用maven构建项目,可以提供继承和引用。比如我们的贷后系统中,将属于系统最基础的模块没有单独出来而是写在business,如用户,角色,数据字典等。这样很多业务都写到business中,随着版本的迭代,business越来越臃肿,而且其他子工程需要数据字典相关的接口,现在只能使用restTemplate调用,而实际可用的接口不够灵活,导致在定制化的时候修改基础的功能。
因此,好的做法是将系统的基础功能作为一个单独的功能,其他需要的地方调用。随着版本的迭代逐步添加基础功能接口的数量和接口的灵活性。这样基础模块的可靠性能得到保证,新项目只需要添加该依赖。如果有新的需求在原来的接口上在进行封装。如果这次的需求是一个通用的需求,在下个版本可以将这些接口添加进基础模块。