分布式微服务数据的所有权是去中心化的:如何实现复杂事务和高效查询

2022-09-30  本文已影响0人  robot_test_boy

许多单体应用在修改应用状态时依靠事务来保证一致性和隔离性的。要实现这两点很简单:应用通常只和单个数据库交互,使用支持启动、提交和回滚这些事务操作的框架来实现强一致性保证

在微服务应用中,就没有这么幸运了。每个独立服务只负责特定的功能。数据的所有权是去中心化的,每个数据源只有一个所有者。这种层面的解耦有助于实现服务自治,但同时也牺牲了某些之前所具备的安全性,从而使得应用层面数据的一致性成为问题数据所有权的去中心化还使得数据的获取变得更加复杂

之前只需要在数据库层面进行关联的查询操作,现在需要调用多个服务才能实现。在某些使用场景中,这还是能够接受的,但是当数据集特别大时,这种方案就会变得非常麻烦。

每个微服务的可用性同样会影响我们的应用设计。服务间的交互可能会失败,导致业务流程受阻,最终使整个系统处于不一致的状态。

如何实现跨多个服务的复杂事务呢?有没有高效的数据查询方法?先抛出问题,后续慢慢学习。

摘取自 摩根·布鲁斯和保罗·A.佩雷拉的《微服务实战》

上一篇 下一篇

猜你喜欢

热点阅读