微服务:如何拆分共享数据库?微服务:如何拆分共享数据库?
在分解单体应用程序到微服务体系架构时,重点考虑独立数据库拆分是很重要的。您需要想出一个可靠的策略,将您的数据库
分割为多个与应用程序对齐的小型数据库。简而言之,您需要将您的应用程序/服务从使用单一的共享数据库中拆分出来。
您应该以这样一种方式设计您的微服务体系结构,即每个单独的微服务都有自己的独立数据库和自己的领域数据。这将允许您
独立部署和扩展微服务。
传统的应用程序只有一个共享的数据库,数据通常在不同的组件之间共享。我们都使用过这样的数据库,并且发现开发更简
单,因为数据存储在一个存储库中。但是这种数据库设计存在很多问题。
共享单个数据缺点
1、为多个服务提供单个数据库的传统设计造成了紧密耦合,并且无法独立部署服务更改。如果有多个服务访问同一个数据
库,那么任何模式更改都需要在所有服务之间进行协调,这在现实世界中可能会导致部署更改的额外工作和延迟。
2、使用这种设计很难扩展单个服务,因为您只能选择扩展整个单块数据库。
3、提高应用程序性能成为一个挑战。使用一个共享数据库,在一段时间内,您最终会得到一个巨大的表。这使得数据检索变
得困难,因为您必须连接多个大型表来获取所需的数据。
4、大多数情况下,关系存储是作为整体数据库的。这限制了所有服务使用关系数据库。然而,在某些情况下,无sql数据存储
可能更适合您的服务,因此您不希望与集中式数据存储紧密耦合。
如何在微服务体系结构中管理数据
每个微服务都应该有自己的数据库,并且应该包含与该微服务本身相关的数据。这将允许您独立部署单个服务。单个团队现在
可以拥有相应微服务的数据库。