[英]Timeout when getting partition info for topic published by older kafka using new kafka client
我有一个使用kafka客户端2.11:0.10.2.1的小型Java Spark服务 。
以下是当我阅读从最新的Kafka版本发布的主题时工作正常的代码:
Properties props = new Properties();
props.put(org.apache.kafka.clients.producer.ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, producerConfig.getBrokerConnectionString());
props.put(org.apache.kafka.clients.producer.ProducerConfig.ACKS_CONFIG, "all");
props.put(org.apache.kafka.clients.producer.ProducerConfig.RETRIES_CONFIG, producerConfig.getRetry());
props.put(org.apache.kafka.clients.producer.ProducerConfig.BATCH_SIZE_CONFIG, producerConfig.getBatchSize());
props.put(org.apache.kafka.clients.producer.ProducerConfig.LINGER_MS_CONFIG, producerConfig.getLingerTimeInMs());
props.put(org.apache.kafka.clients.producer.ProducerConfig.REQUEST_TIMEOUT_MS_CONFIG, producerConfig.getRequestTimeout());
props.put(org.apache.kafka.clients.producer.ProducerConfig.MAX_BLOCK_MS_CONFIG, producerConfig.getMaxBlockMS());
props.put(org.apache.kafka.clients.producer.ProducerConfig.CONNECTIONS_MAX_IDLE_MS_CONFIG, producerConfig.getMaxIdleTime());
props.put(org.apache.kafka.clients.producer.ProducerConfig.BUFFER_MEMORY_CONFIG, maxBytesInBuffer / producerConfig.getProducersCount());
props.put(org.apache.kafka.clients.producer.ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringSerializer");
props.put(org.apache.kafka.clients.producer.ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.ByteArraySerializer");
producers = new Producer[1];
producers[0] = new KafkaProducer<>(props);
producers[0].partitionsFor("mYTopic").size();
现有一个Kafka主题,其中kafka版本是0.8.2.x。 我也想为此使用相同的代码。 但是此代码在最后一行( partitionsFor
)中给出了由Kafka发布的0.8.2.x版主题的超时。 在这方面的任何帮助将不胜感激。
简而言之:Kafka主题(由0.8.2.x发布)无法被0.10.2.1客户端读取
通常,经纪人相对于客户是向后兼容的,但是客户相对于经纪人是不向后兼容的。 最新发布的版本对此稍有放松,但对于0.10以上的经纪商仍然适用。
http://kafka.apache.org/documentation.html#upgrade
从版本0.10.2开始,Java客户端(生产者和消费者)已经具有与较早的代理进行通信的能力。 版本0.11.0的客户可以与版本0.10.0或更高版本的代理通信。 但是,如果您的代理早于0.10.0,则必须先升级Kafka群集中的所有代理,然后再升级客户端。 版本0.11.0代理支持0.8.x和更高版本的客户端。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.