Я использую сериализатор Long для ключей и сериализатор String для значения, после отправки сообщения в kafka topi c, когда мы получили сообщение и вместе с ключом, мы видим ключ как некоторое значение мусора, как показано ниже
^@^@^@^AÏÃ<9a>ò
Что-то не так с конфигурацией производителя kafka?
Обновление:
Ниже конфигурации производителя
configProps.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());
configProps.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, LongSerializer.class.getName());
configProps.put(CommonClientConfigs.REQUEST_TIMEOUT_MS_CONFIG, requestTimeoutInMillis);
configProps.put(ProducerConfig.COMPRESSION_TYPE_CONFIG, abcompressionType);
@Bean
public ProducerFactory<Long, String> longProducerFactory() {
return new DefaultKafkaProducerFactory<>(longProducerConfigs());
}
@Bean
public KafkaTemplate<Long, String> longKeyKafkaTemplate() {
return new KafkaTemplate<>(longProducerFactory());
}
и ниже отправьте звонок
longKeyKafkaTemplate.send(topicName, key, message);