微服务架构--数据初始化

问题描述 投票:0回答:1

我们正试图创建一个基于微服务的软件。

我喜欢这个想法,所有的服务都应该独立工作,并保存所有它需要的数据.我也喜欢这个概念,我通过消息传递来保持数据的更新,所以发送CreatedUpdatedDeleted事件。

但是现在我遇到了一个问题,我称之为 "数据初始化"。

问题:ServiceA是一个可选的服务,所以可能会发生ServiceA启动的时间比ServiceB晚(也许几个星期)。

所以现在我可以做一个数据初始化吗?对此,我有几点想法。

  • REST -Call:但是如果数据真的很大怎么办?HTTP是同步调用,所以它阻止了我很长一段时间吗?可能有太多的数据为HTTP-Request?

  • 其他方式的想法?

谢谢& Regard!

architecture microservices messaging communication eventual-consistency
1个回答
0
投票

对于微服务之间的通信,可以应用同步和异步方法(见 本文本文).

流行的协议包括HTTPREST(同步)和AMQP(异步,面向消息)--描述典型方面的一般介绍可以在以下网站找到 此处.

这另一条 对不同的方法进行了比较,表明HTTPREST设计往往会导致服务之间更紧密的耦合,并且由于协议的阻塞性和更难的错误处理(例如当一个服务不可用时)而存在缺点。相反,异步或事件驱动的设计往往会导致服务的松散耦合,更好的可扩展性和更大的弹性以及更简单的错误处理。

通常情况下,每种方法都有其特定的优点和缺点,决定权真正取决于你的应用场景。

© www.soinside.com 2019 - 2024. All rights reserved.