微服务的数据库设计

Posted

技术标签:

【中文标题】微服务的数据库设计【英文标题】:Database design for microservices 【发布时间】:2016-12-13 06:13:01 【问题描述】:

我正在为基于微服务架构的 Web 应用程序构建后端。每个微服务将只负责管理与特定模块相关的任务,并将拥有自己的本地数据库。一个模块可以有多个微服务。例如

客户模块将拥有自己的微服务,而微服务将拥有本地数据库来保存客户数据。 订单模块同样有自己的本地数据库来保存订单记录。

我正在考虑使用事件驱动架构管理数据持久性,但我想知道是否有一些数据库可用于此实现(可能是 Cassandra?)

我愿意接受任何建议:)

【问题讨论】:

如果您正确地抽象了您的应用程序,那么您可以在开发的后期决定使用哪个数据库。 【参考方案1】:

这取决于应用程序本身。如果您想使用应用程序感知数据库,您可以使用 NoSQL 数据库,例如 cassandra。如果您只想在 ER 基础上建模和存储数据,您可以使用一些关系数据库(例如 Oracle)。 尽管如此,Cassandra 应该部署为集群数据库,因此不适合用作本地数据库。

要为您提供更适合您的上下文的数据库,您必须提供有关“问题”的更多信息,例如,您将支持多少并发用户,每个用户有多少请求,您拥有多少数据?

【讨论】:

以上是关于微服务的数据库设计的主要内容,如果未能解决你的问题,请参考以下文章

微服务的数据库设计

微服务架构设计

一文详解微服务架构的数据设计

微服务开发中的数据架构设计

微服务架构的数据库设计 [关闭]

微服务架构设计模式