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

时间:2020-01-09 01:21:38

标签: microservices

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

3 个答案:

答案 0 :(得分:1)

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

在这种情况下,建议使用事件驱动的体系结构复制数据。采用这种架构,微服务A中的数据更改会发布到像Kafka这样的消息代理,然后由微服务B使用。微服务B会使用微服务A的事件信息来更新自己的数据库。通过这种方式,也避免了耦合。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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