java—如何在vertx中使用ApacheKafka,既在服务器端,也在客户端?

nxagd54h  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(451)

最近我问过在vertx中交流微服务的最佳方式是什么,我的方式是使用一个web客户机,它与提供vertx的库相同(非常简单),但是我一直在阅读使用ApacheKafka更好,但是我不知道如何使用它,我阅读了kafka的官方文档,但是我只能创建一个生产者和消费者,我真的不知道该怎么处理他们,我怎么能从一个微服务通过Kafka把一个方法发送到另一个错误服务呢?请原谅我对这个问题一无所知

z31licg0

z31licg01#

您的微服务可以做到:
订阅一个kafka主题并使用来自该主题的消息并处理该消息(为此,您需要使用 group.id 在微服务中)
在一个或多个主题中发送消息以联系其他微服务(为此,您需要在微服务中创建一个或多个生产者)
我建议您阅读一些关于使用kafka或老式jms兼容系统(例如activemq或rabbitmq)的微服务体系结构的文章。
你可以从这个开始:https://medium.com/@ulymarins/an-apache-kafka-and-microservices-communication-bf0a0966d63简介
下面是一个场景示例:
服务a:要订购汉堡菜单的restfull端点:
POST /v1/order {"type": "cheeseburger", "quantity": 1, "ketchup": true, "notify": ["cooker"]} 这个服务使用kafka生产者在一个名为 TOPIC_ORDERS 服务b:使用 TOPIC_ORDER 然后发送短信到炊具,将订单插入数据库,并在另一个主题中生成带有ID的已创建订单 CREATED_ORDERS 服务c:烹饪菜单时炊具使用的另一个restfull端点:
PATCH /v1/order/{id} {"ready": true, "notify": ["customer"]} 这一个产生了 TOPIC_ORDER 以便呼叫服务b更新数据库中的订单并通知客户。
服务d:使用 CREATED_ORDERS 在其他应用程序使用的搜索引擎中索引的主题(例如,生成统计信息)

相关问题