gpt4 book ai didi

java - 如何在vertx中使用apache kafka,无论是在服务器端还是客户端?

转载 作者:行者123 更新时间:2023-12-02 11:25:15 25 4
gpt4 key购买 nike

我最近问在 vertx 中通信我的微服务的最佳方式是什么,我采用的方式是使用具有提供 vertx 的相同库的 Web 客户端(非常简单),但是我一直在阅读该内容使用apache kafka更好,但我不知道如何使用它,我阅读了kafka的官方文档,但我只能创建一个生产者和一个消费者,我真的不知道如何处理它们,我该如何从微服务通过kafka向另一个微服务发送方法?请原谅我对这个问题的无知

最佳答案

您的微服务可以做到这一点:

  • 订阅 Kafka 主题并使用来自该主题的消息并处理该消息(为此,您需要在微服务中创建一个具有 group.id 的使用者)

  • 在一个或多个主题中发送消息以联系其他微服务(为此,您需要在微服务中创建一个或多个生产者)

我建议您阅读一些有关使用 Kafka 或旧式 JMS 兼容系统(例如 ActiveMQ 或 RabbitMQ)的微服务架构的文章。

您可以从这个开始:https://medium.com/@ulymarins/an-introduction-to-apache-kafka-and-microservices-communication-bf0a0966d63

以下是场景示例:

  • 服务 A:用于订购汉堡菜单的安静端点:

    POST/v1/order

    {"type": "cheeseburger", "quantity": 1, "ketchup": true, "notify": ["cooker"]}

    此服务使用 Kafka 生产者在名为 TOPIC_ORDERS 的主题中发送 JSON

  • 服务B:使用TOPIC_ORDER的消息并向cooker发送短信,并将订单插入数据库,并使用另一个主题CREATED_ORDERS<中的id生成创建的订单

  • 服务 C: cooking 器在 cooking 菜单时使用的另一个 Restfull 端点:

    补丁/v1/order/{id}

    {"ready": true, "notify": ["customer"]}

    这会在 TOPIC_ORDER 中生成消息,以便调用服务 B 更新数据库中的订单并通知客户。

  • 服务 D:使用 CREATED_ORDERS 主题的消息在某些其他应用程序使用的搜索引擎中建立索引(例如进行统计)

关于java - 如何在vertx中使用apache kafka,无论是在服务器端还是客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49683432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com