模块化单体架构是一种非常流行的架构方法。 它们结合了模块化和单片设计的优点。
模块化单体试图解决单体和微服务架构的缺点。
我经常看到的单片架构的一个问题是组件之间的紧密耦合。
这会导致系统不同部分之间的依赖关系。
模块化单体通过明确定义的模块边界和通信模式实施更好的架构实践。
但一个不容忽视的方面是模块之间的数据隔离。
数据隔离确保模块是独立且松散耦合的。
今天,我将向您展示模块化单体的四种数据隔离方法:
单独的表格
单独的架构
单独的数据库
不同的持久性
为什么数据隔离很重要?
让我们首先了解为什么数据隔离在模块化单体架构中很重要。
模块化单体对数据完整性有严格的规则:
每个模块只能访问自己的表
模块之间不共享表或对象
只允许在同一模块的表之间进行联接
模块化单体内部的模块应该是独立的。 每个模块处理自己的数据。 其他模块可以使用模块的公共 API 访问该数据。
这种设计有什么好处?
保持模块彼此隔离有助于模块化和松耦合。 这样可以更轻松地向系统引入新的更改。 当组件松散耦合时,意外的副作用较少。
如果使用的是关系数据库,则仍可以保持引用完整性。 提取表时删除外键不是问题。
第 1 级 - 独立表
最简单的解决方案是在数据库级别不进行隔离。 所有模块的表都位于一个数据库中。 确定哪些表属于哪个模块并不容易。
我只是为了完整起见而提及这种方法。
但是,这种方法适用于特定的应用程序大小。
但是,您拥有的表越多,就越难将它们隔离在模块之间。
您可以通过在表之间添加逻辑隔离来改进这一点。
级别 2 - 单独的架构
对数据库中的相关表进行分组是引入逻辑隔离的一种方式。 您可以使用数据库架构来实现这一点。 每个模块都