虽然每个微服务通常都有自己的数据 - 某些实体需要在多个服务之间保持一致。
对于微服务架构等高度分布式环境中的这种数据一致性要求,设计上有哪些选择?当然,我不想要共享数据库架构,其中单个数据库管理所有服务的状态。这违反了隔离和无共享原则。
我确实理解,微服务可以在创建、更新或删除实体时发布事件。对此事件感兴趣的所有其他微服务可以相应地更新其各自数据库中的链接实体。
这是可行的,但是它会导致跨服务进行大量仔细和协调的编程工作。
Akka 或任何其他框架可以解决这个用例吗?如何?
EDIT1:
为清楚起见,添加下图。
基本上,我试图了解,如果今天有可用的框架可以解决这个数据一致性问题。
对于队列,我可以使用任何 AMQP 软件,例如 RabbitMQ 或 Qpid 等。对于数据一致性框架,我不确定目前 Akka 或任何其他软件是否可以提供帮助。还是这种情况如此罕见,并且是一种不需要任何框架的反模式?