【问题标题】:Call external rest API while processing Kafka stream in consumer end在消费者端处理Kafka流时调用外部REST API
【发布时间】:2020-03-22 23:10:45
【问题描述】:

让我们讨论一种情况。

Consumer 收到一个 Kafka Stream ,流中的 Message 需要根据一些 Validator Micro 服务和 Enricher API 调用进行丰富和验证。它还将消息持久化到数据库中。

流程就是这样 - Kafka Stream 消费者 -> 每条消息 -> 调用 Rule Validator Rest API -> 调用 Enrich API -> 通过 Persistence REST API 保存到数据库。

因为所有 REST 调用都是同步的,而其余调用在调用最终的 Persistence Micro 服务 API 之前是顺序的。

显然 Kafka Stream 消费者获得了高吞吐量的消息。

如何通过编码实现这一点?

【问题讨论】:

    标签: rest apache-kafka


    【解决方案1】:

    不要使用 REST。

    如果您可以完全控制管道的每一部分,请使用 Kafka Streams Processor API 获取 3 个中间主题之间的数据库前输出,然后使用 Kafka Connect 下沉到数据库。

    这将扩展到比您的 REST API 可以处理的负载要好得多

    如果您没有控制权,您将不得不创建一个任务/请求队列主题,下一个 API 调用将从该主题中获取来自另一个消费者的请求,并且必须等到第一个 API 响应来自之前的那个

    【讨论】:

      猜你喜欢
      • 2017-10-16
      • 2017-05-31
      • 2023-01-10
      • 1970-01-01
      • 2018-10-31
      • 1970-01-01
      • 2020-12-18
      • 2021-10-11
      • 1970-01-01
      相关资源
      最近更新 更多