JavaでKafkaクラスタに接続する方法は何ですか?

Kafkaクラスターに接続するためには、Javaで次の設定が必要です。

  1. プロジェクトのpom.xmlファイルにKafkaクライアントの依存関係を追加してください。
<dependency>
   <groupId>org.apache.kafka</groupId>
   <artifactId>kafka-clients</artifactId>
   <version>2.8.0</version>
</dependency>
  1. KafkaProducerのインスタンスを作成する:次のコードを使用してKafkaProducerのインスタンスを作成し、Kafkaクラスタのアドレスを設定します。
import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.Producer;
import org.apache.kafka.clients.producer.ProducerConfig;

import java.util.Properties;

public class KafkaProducerExample {
   public static void main(String[] args) {

      // Kafka集群地址
      String kafkaServers = "localhost:9092,localhost:9093,localhost:9094";

      // KafkaProducer配置
      Properties props = new Properties();
      props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, kafkaServers);
      props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringSerializer");
      props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringSerializer");

      // 创建KafkaProducer实例
      Producer<String, String> producer = new KafkaProducer<>(props);

      // 发送消息
      // ...

      // 关闭KafkaProducer
      producer.close();
   }
}
  1. KafkaConsumerのインスタンスを作成する:以下のコードを使用してKafkaConsumerのインスタンスを作成し、Kafkaクラスターのアドレスを設定する。
import org.apache.kafka.clients.consumer.Consumer;
import org.apache.kafka.clients.consumer.ConsumerConfig;
import org.apache.kafka.clients.consumer.KafkaConsumer;
import org.apache.kafka.common.serialization.StringDeserializer;

import java.util.Arrays;
import java.util.Properties;

public class KafkaConsumerExample {
   public static void main(String[] args) {

      // Kafka集群地址
      String kafkaServers = "localhost:9092,localhost:9093,localhost:9094";

      // KafkaConsumer配置
      Properties props = new Properties();
      props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, kafkaServers);
      props.put(ConsumerConfig.GROUP_ID_CONFIG, "my-consumer-group");
      props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName());
      props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName());

      // 创建KafkaConsumer实例
      Consumer<String, String> consumer = new KafkaConsumer<>(props);

      // 订阅topic
      consumer.subscribe(Arrays.asList("my-topic"));

      // 消费消息
      // ...

      // 关闭KafkaConsumer
      consumer.close();
   }
}

上記のコード例では、kafkaServers、GROUP_ID_CONFIG、およびsubscribeのパラメータ値を実際の状況に合わせて置き換える必要があります。kafkaServersはKafkaクラスターのアドレスであり、GROUP_ID_CONFIGは消費者グループのIDであり、subscribeは購読するトピック名を指定します。

注意:上記のコード例はデモとしてのみ使用されています。実際のアプリケーションでは、シリアライザ、コンシューマの位置など、より多くのパラメータを設定する必要があります。具体的な設定は要件に応じて決定されます。

bannerAds