kafka

kafka同步发送如何设置超时时间

小樊
81
2024-12-18 11:17:09
栏目: 大数据

在Kafka中,同步发送消息时,可以通过设置request.timeout.ms参数来指定超时时间。这个参数用于控制客户端等待服务器响应的最长时间。如果在这个时间内服务器没有响应,客户端将抛出一个超时异常。

以下是如何设置request.timeout.ms参数的示例:

  1. 创建一个Kafka生产者配置对象,并设置request.timeout.ms参数:
Properties props = new Properties();
props.put("bootstrap.servers", "localhost:9092");
props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
props.put("request.timeout.ms", "30000"); // 设置超时时间为30秒
  1. 使用这个配置对象创建一个Kafka生产者:
Producer<String, String> producer = new KafkaProducer<>(props);
  1. 使用生产者发送消息:
producer.send(new ProducerRecord<>("your-topic", key, value), new Callback() {
    @Override
    public void onCompletion(RecordMetadata metadata, Exception exception) {
        if (exception != null) {
            System.out.println("发送消息失败: " + exception.getMessage());
        } else {
            System.out.println("消息发送成功,分区: " + metadata.partition() + ", offset: " + metadata.offset());
        }
    }
});

在这个示例中,我们将request.timeout.ms参数设置为30秒。这意味着如果生产者在30秒内没有收到服务器的响应,它将抛出一个超时异常。你可以根据实际需求调整这个值。

0
看了该问题的人还看了