我正在使用kafka_2.11-2.2.1。我在server.properties中有以下设置。
message.max.bytes=20971520
replica.fetch.max.bytes=23068672
代码级别的生产者配置。
@Bean("serviceKafkaTemplate")
public KafkaTemplate kafkaTemplate(@Autowired final ProducerFactory producerFactory) {
return new KafkaTemplate(producerFactory);
}
@Bean
public ProducerFactory<String, Object> producerFactory() {
return new DefaultKafkaProducerFactory(props());
}
private Properties props() {
Properties properties = new Properties();
properties.put(ProducerConfig.COMPRESSION_TYPE_CONFIG, "gzip");
properties.put(ProducerConfig.REQUEST_TIMEOUT_MS_CONFIG, 10000);
properties.put(ProducerConfig.BATCH_SIZE_CONFIG, 1);
properties.put(ProducerConfig.LINGER_MS_CONFIG, 1);
properties.put(ProducerConfig.MAX_REQUEST_SIZE_CONFIG, 15728640);
properties.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
properties.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
return properties;
}
@Autowired
private KafkaTemplate serviceKafkaTemplate;
serviceKafkaTemplate.send("topic_name", data);
我只说生产者而不是消费者。当我通过cmd检查偏移量时,偏移量不会增加,这意味着生产者未发送数据。我的数据大小小于1 MB,那么它正在工作,当前大小为1.75 MB。在kafka server.log文件中也没有与此相关的内容。如果我错过任何配置,请告诉我。
答案 0 :(得分:4)
请看一下酒店
import "your generated swagger framework"
extension Error {
var code: Int {
guard let err = self as? ErrorResponse
else { return (self as NSError).code }
switch err{
case ErrorResponse.error(let code, _, _):
return code
}
}
}
当前文档中的说明:
请求的最大大小(以字节为单位)。此设置将限制生产者将在单个请求中发送的记录批数,以避免发送大量请求。这实际上也是最大记录批次大小的上限。请注意,服务器对记录批大小有自己的上限,可能与此不同。
认为这应该对您有帮助。另请参阅文档。