课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,越来越多的企业都开始向数字化转型发展迈进,而今天我们就一起来了解一下,共享数据库都有哪些问题需要注意。
1、为多个服务提供单个数据库的传统设计造成了紧密耦合,并且无法独立部署服务更改。如果有多个服务访问同一个数据库,那么任何模式更改都需要在所有服务之间进行协调,这在现实世界中可能会导致部署更改的额外工作和延迟。
2、使用这种设计很难扩展单个服务,因为您只能选择扩展整个单块数据库。
3、提高应用程序性能成为一个挑战。使用一个共享数据库,在一段时间内,您终会得到一个巨大的表。这使得数据检索变得困难,因为您必须连接多个大型表来获取所需的数据。
4、大多数情况下,关系存储是作为整体数据库的。这限制了所有服务使用关系数据库。然而,在某些情况下,无sql数据存储可能更适合您的服务,因此您不希望与集中式数据存储紧密耦合。
每个微服务都应该有自己的数据库,并且应该包含与该微服务本身相关的数据。这将允许您独立部署单个服务。单个团队现在可以拥有相应微服务的数据库。
微服务应该遵循领域驱动设计并具有有限的上下文。您需要基于领域来设计应用程序,领域与应用程序的功能是一致的。这就像遵循代码优先方法而不是数据优先方法一样——因此您先设计模型。这是一种与传统的在开始处理新需求或新项目时先设计数据库表的方法完全不同的方法。您应该始终努力保持业务模型的完整性。
在设计数据库时,查看应用程序功能并确定它是否需要关系模式。如果NoSQL数据库符合您的标准,请保持对它的开放态度。
数据库应该被视为每个微服务的私有数据库。没有其他微服务可以直接修改存储在另一个微服务中的数据库中的数据。
事件驱动架构是在不同服务之间维护数据一致性的通用模式。与等待ACID事务完成处理并占用系统资源不同,您可以通过将消息卸载到队列中来提高应用程序的可用性和性能。这提供了服务之间的松散耦合。
队列的消息可以被视为事件,并且可以遵循发布-子模型。发布者发布消息,而不知道已经订阅了事件流的使用者。体系结构中组件之间的松散耦合可以构建高度可伸缩的分布式系统。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请在707945861群中学习了解。