【发布时间】:2022-01-15 16:08:11
【问题描述】:
对于流行的使用Spring开发的音乐流媒体服务架构,像PostgreSQL一样将所有模型都放在一个模块和一个具有强RDMB的数据库中是否正确?或者每个服务都有一个单独的数据库? 正是我的问题是哪种模型是最优的?
【问题讨论】:
-
独立数据库中的一个大问题是报告。第二个问题是使用Kafka等队列管理工具在微服务之间交换消息的成本很高
标签: spring architecture
对于流行的使用Spring开发的音乐流媒体服务架构,像PostgreSQL一样将所有模型都放在一个模块和一个具有强RDMB的数据库中是否正确?或者每个服务都有一个单独的数据库? 正是我的问题是哪种模型是最优的?
【问题讨论】:
标签: spring architecture
如果您的问题是关于良好的代码设计或良好的应用程序设计,我认为多个数据库带来的好处不多,但成本很高。如果您想要一个可维护性良好的应用程序,请考虑数据模型中的多个命名空间。模型的哪些部分具有高内聚性?哪些部分应该松耦合?将松散耦合的部分拆分为不同的命名空间。如果您希望拥有松散耦合的服务,请避免通过连接数据在数据库层将它们粘合在一起。在我看来,“钻石架构”是一种反模式。我认为“领域驱动设计”是设计结构良好的数据模型的好习惯。但是不同的命名空间当然可以存储在一个数据库实例中。
如果您的问题是关于“良好的架构”,请考虑您的质量要求。 “多服务架构”是什么意思?你的目标是什么?您是否希望能够独立部署您的服务,避免由于糟糕的数据模型而导致的高度耦合非常重要。但是没有必要将模型拆分到多个数据库中。如果您的目标是提供高可用服务,以便即使您的一项服务崩溃,其他服务仍然可用,您绝对应该考虑多个数据库。如果多个服务基于单个数据库实例,则会出现单点故障。
【讨论】: