java - Kafka 使用 Sink Connector 进行 google Pub/Sub

标签 java spring-boot apache-kafka google-cloud-pubsub

很抱歉问了这个基本问题。

要求: 需要将 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 同步连接器的实例。连接器的自述文件详细介绍了需要采取的步骤,但总结如下:

  1. 下载latest release并通过 mvn package 构建它命令。
  2. 将 target/cps-kafka-connector.jar 复制到 Java 路径中的某个位置,以便在 Kafka Connect 运行时可以访问它。
  3. 复制sink config并将其更改为指向适当的 Cloud Pub/Sub 项目和主题以及适当的 Kafka 主题。
  4. 根据您是否希望运行连接器的单个实例或多个实例,创建 config/connect-standalone.properties 或 config/connect-distributed.properties 的副本。
  5. 更新key.convertervalue.converter属性为org.apache.kafka.connect.storage.StringConverter 。这样,连接器就不会尝试解释正在传递的数据,而是直接将 JSON 传递到 Cloud Pub/Sub。
  6. 根据独立连接器与分布式连接器使用适当的命令启动连接器,例如 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/

相关文章:

java - 整洁的架构 : separate IO and Core in different . jar 文件

java - 为什么这个java小程序失败了?

java - 如何验证 List 类型的@RequestParam 的大小

java - Kafka为什么要更改商店名称

java - 从 Socket.getInputStream() 抛出 NullPointerException

amazon-web-services - 弹性 beantalk 上的 spring boot 应用程序 - 健康检查失败

java - 如何在 Hibernate 中使用 @Qualifier

apache-kafka - 如何基于 schema-registry 动态更新 KSQL 流定义

apache-spark - Spark 2.1 结构化流 - 使用 Kakfa 作为 Python 源 (pyspark)

java - getItem 和 getSelectedItem 之间的区别