jenkins中的kafka生产者代码无法将数据发送到融合的kafka主题

n1bvdmb6  于 2021-08-20  发布在  Java
关注(0)|答案(0)|浏览(343)

我在maven项目中有一个java文件,其中包含kafka生产者代码,用于向主题发送数据。

  1. Producer.java
  2. // some code
  3. KafkaProducer<String, String> producer = new KafkaProducer<String, String>(props);
  4. JSONObject jsonRecord = new JSONObject();
  5. jsonRecord.put("integer", 1);
  6. producer.send(new ProducerRecord<String, String>(topicName, null, mapper.writeValueAsString(jsonRecord)));
  7. // some code

我使用命令运行这个文件

  1. mvn exec:java -Dexec.mainClass=Producer

这些物业包括:

  1. public static final String JAAS_SASL_TEMPLATE =
  2. "org.apache.kafka.common.security.plain.PlainLoginModule required username=\"%s\" %s=\"%s\";"
  3. props.put(CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, "SASL_SSL");
  4. String jaasCfg = String.format(JAAS_SASL_TEMPLATE, "username", "auth_secret_key", "kafka_secret");
  5. props.put(SaslConfigs.SASL_MECHANISM, "PLAIN");
  6. props.put(SaslConfigs.SASL_JAAS_CONFIG, jaasCfg);
  7. props.put(CommonClientConfigs.BOOTSTRAP_SERVERS_CONFIG, "example.aws.confluent.cloud:9092");
  8. props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, IntegerSerializer.class.getName());
  9. props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());

当我在本地运行时,这段代码能够将数据发送到合流的Kafka主题
现在,我在jenkins管道中添加了一个阶段,在shell脚本中运行java文件

  1. stage('Send data') {
  2. steps {
  3. sh '''
  4. mvn exec:java -Dexec.mainClass=Producer
  5. '''
  6. }
  7. }

所有其他功能都可以工作,但Kafka制作人无法将数据发送到合流的Kafka主题。也不会抛出错误。有人能帮我解决我所缺少的吗??

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题