JavaでKafkaクラスタに接続する方法は何ですか?
Kafkaクラスターに接続するためには、Javaで次の設定が必要です。
- プロジェクトのpom.xmlファイルにKafkaクライアントの依存関係を追加してください。
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>2.8.0</version>
</dependency>
- 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();
}
}
- 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は購読するトピック名を指定します。
注意:上記のコード例はデモとしてのみ使用されています。実際のアプリケーションでは、シリアライザ、コンシューマの位置など、より多くのパラメータを設定する必要があります。具体的な設定は要件に応じて決定されます。