【问题标题】:Microservices - role of kafka, API gateway, lambda微服务——kafka、API网关、lambda的作用
【发布时间】:2020-06-05 13:04:50
【问题描述】:

在遵循微服务架构时,在哪里以及如何使用kafka(用于服务间消息通信?)我的理解是否正确?

Clients(Webpage) -> 通过 API 网关 -> Lamdba -> 请求 (CRUD) 消费者信息。 现在,我应该直接使用 dynamo db 更新 Lambda 中的消费者信息,还是向 kafka 发送一个应该更新数据的事件? 客服是否应该发送诸如 customer_updated 之类的事件来通知其他服务更新?

另外,我的理解是,每个微服务 -> 都有自己的数据库。任何与其他服务相关的数据都应复制并保存在同一个数据库中。 例如,客户服务可以保存有关客户帐户和相关数据的数据(或者它应该只保存帐户的 ID)。 如果我们想在客户页面中显示与帐户相关的一小部分数据怎么办。应该在帐户服务的哪个帐户信息之后获取帐户的 ID?

基本上是两个q,但感觉它们是相互关联的。

【问题讨论】:

    标签: apache-kafka microservices


    【解决方案1】:

    注意:你可以用 Kinesis 替换 Kafka,你也会有同样的问题......

    Lamdba 也可以替换为网关后面的任何 API 服务器,而网关可以只是一个简单的负载平衡器。

    您在这里不需要 Kafka 或消息队列,但这里的主要好处是它可以将您的 CRUD 操作和服务之间的任何其他点对点交互解耦,并增加在以下情况下具有持久性和背压的能力下游服务无法接收请求。

    关于数据库和显示状态 - 在 Kafka 中,您需要加入主题然后转储到数据库表,或者转储单个主题,然后从那里加入,具体取决于您的查询模式。请注意,您可以使用一个生产者将多个事件发送到一个应用程序/功能中的多个主题

    【讨论】:

      猜你喜欢
      • 2017-04-05
      • 2019-04-06
      • 2020-07-24
      • 1970-01-01
      • 2022-11-09
      • 2018-01-25
      • 2019-10-27
      • 2016-01-14
      • 2020-11-07
      相关资源
      最近更新 更多