很抱歉问了这个基本问题。
要求: 需要将 json 有效负载从 Spring Boot 应用程序发送到 google pub sub。
我已经开始实现 kafka 生产者并向主题发布消息,然后从那里到 kafka 消费者接收 json。
现在我需要将 json 负载从 kafka 消费者发送到 google pub/sub。 我很困惑,我是否需要 kafka 消费者。或者只是从 kafka 生产者到 google pub sub 我可以通过使用 kafka Connector.jar 并在属性中的主题中进行配置来发送。 非常感谢对此实现的任何帮助
最佳答案
如果您想将消息从 Kafka 获取到 Google Cloud Pub/Sub,则不需要编写自己的使用者。您可以创建 Google Cloud Pub/Sub Kafka connector 的实例化。 Kafka Connect服务通常是 Kafka 部署本身的一部分,因此您只需启动一个配置为运行 Cloud Pub/Sub 同步连接器的实例。连接器的自述文件详细介绍了需要采取的步骤,但总结如下:
- 下载latest release并通过
mvn package
构建它命令。 - 将 target/cps-kafka-connector.jar 复制到 Java 路径中的某个位置,以便在 Kafka Connect 运行时可以访问它。
- 复制sink config并将其更改为指向适当的 Cloud Pub/Sub 项目和主题以及适当的 Kafka 主题。
- 根据您是否希望运行连接器的单个实例或多个实例,创建 config/connect-standalone.properties 或 config/connect-distributed.properties 的副本。
- 更新
key.converter
和value.converter
属性为org.apache.kafka.connect.storage.StringConverter
。这样,连接器就不会尝试解释正在传递的数据,而是直接将 JSON 传递到 Cloud Pub/Sub。 - 根据独立连接器与分布式连接器使用适当的命令启动连接器,例如
bin/connect-standalone.sh <standalone config file> <connector config file>
.
消息现在应该从 Kafka 流入 Google Cloud Pub/Sub。如果您只是使用 Kafka 从 Spring Boot 转到 Cloud Pub/Sub,那么您可以通过设置 outbound channel adapter to send messages to Cloud Pub/Sub directly 来避免 Kafka 步骤。 .
关于java - Kafka 使用 Sink Connector 进行 google Pub/Sub,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55277188/