溫馨提示×

kafka同步發送如何設置超時時間

小樊
225
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
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女