![](/img/trans.png)
[英]how to get acknowledgement from Kafka broker if message is produced by producer?
[英]Kafka producer fails to produce message via Bootstrap server. how to set broker host?
Kafka Producer API獲取超時異常。
產生Kafka訊息的手動程序
我們通過SSH連接到kafka服務器:xxxx,在那輸入生產者的以下命令
/kafka/bin/kafka-console-producer.sh --broker BrokerHostAddress:9092 --topic TestTopic
{ValidJsonData}
Kafka服務器和BrokerHostAddress是不同的地址。
嘗試通過Java + kafka-clients(2.1.0)產生有關上述主題的消息,得到:java.util.concurrent.ExecutionException:org.apache.kafka.common.errors.TimeoutException:在60000 ms之后無法更新元數據。
String bootstrap_Server = "x.x.x.x:port"
private static KafkaProducer<String, String> producer = null;
Properties props = new Properties();
props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrap_Server);
props.put(ProducerConfig.CLIENT_ID_CONFIG, "KafkaExampleProducer");
props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());
props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());
props.put(ProducerConfig.ACKS_CONFIG, "all");
props.put(ProducerConfig.RETRIES_CONFIG, 0);
props.put(ProducerConfig.BATCH_SIZE_CONFIG, 16384);
props.put(ProducerConfig.LINGER_MS_CONFIG, 1);
producer = new KafkaProducer<String, String>(props);
kafkaInTopicName = "TestTopic";
Key = "123123";
value = "{ValidJsonData}";
producer.send(new ProducerRecord<String, String>(kafkaInTopicName, key, value)).get(); ```
從props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrap_Server);
和String bootstrap_Server = "xxxx"
,看來您的引導服務器不包含端口,因此它應該是“ xxxx:9092”,其中“ xxxx”是集群中一個Kafka代理的IP地址。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.