使用接收器连接器将Kafka转换为Google Pub / Sub

时间:2019-03-21 09:25:59

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

很抱歉出现基本问题。

要求: 需要从Spring Boot应用程序将json有效负载发送到Google pub sub。

我已经开始实现kafka生产者并向主题发布消息,从那里到kafka消费者正在接收json。

现在我需要将来自Kafka使用者的json有效负载发送到Google pub / sub。 Iam感到困惑,我是否应该为此需要kafka使用者。或者我可以从kafka生产者到google pub sub发送邮件,方法是使用kafka connector.jar并在属性中的主题中进行配置。 此实现为您提供了任何帮助

1 个答案:

答案 0 :(得分:2)

如果要将消息从Kafka发送到Google Cloud Pub / Sub,则无需编写自己的使用者。您可以创建Google Cloud Pub/Sub Kafka connector的实例。 Kafka Connect服务通常是Kafka部署本身的一部分,因此您只需要启动一个配置为运行Cloud Pub / Sub同步连接器的实例即可。连接器的README文件详细说明了需要采取的步骤,但总结如下:

  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步骤。