具有独立数据库的微服务如何相互通信?



例如,微服务 A 具有数据库 A,微服务 B 具有数据库 B。现在,微伺服 B 希望从 A 那里共享一些数据。我们如何处理这种情况?

微服务 B 可以进行同步调用以获取所需的数据。(如 REST 调用(如果微服务 B 经常需要此数据,最好避免同步调用以避免网络成本。

对于此类情况,建议使用事件驱动架构复制数据。使用此体系结构,微服务 A 中的数据更改将发布到 Kafka 等消息代理,然后由微服务 B 使用。微服务 B 使用微服务 A 事件中的信息更新自己的数据库。这样也避免了耦合。

他们使用通信协议,如HTTP。

每个微服务都需要拥有自己的数据库架构,并且只应查询自己的数据库架构。在这种情况下,由于微服务 B 需要来自 DB-A 的数据,因此微服务 A 需要公开此数据,可能通过 Rest API,然后,微服务 B 需要调用该 Rest API 以从数据库 - A 获取数据

最新更新