В Producer / Consumer вы можете указать другой сериализатор, а не ByteArraySerializer по умолчанию, Здесь вы можете найти доступные сериализаторы для версии 1.1.0
, или вы можете указать свой собственный.
Как правило, если вы отправляете / получаете строки или Json, вы можете просто использовать значения по умолчанию org.apache.kafka.common.serialization.StringSerializer
и org.apache.kafka.common.serialization.StringDeserializer
.Для производителя / потребителя доступны следующие свойства:
private void configureProducer() {
Properties props = new Properties();
props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
}
private void configureConsumer() {
Properties props = new Properties();
props.put("key.serializer", "org.apache.kafka.common.serialization.StringDeserializer");
props.put("value.serializer", "org.apache.kafka.common.serialization.StringDeserializer");
}
Properties producerProps = configureProducer();
KafkaProducer<String, String> producer = new KafkaProducer<>(producerProps);
Properties consumerProps = configureConsumer();
KafkaConsumer<String, String> consumer = new KafkaConsumer<>(consumerProps);
Если вы хотите отправить свой собственный компонент EJB, то либо преобразуйте его в json и используйте StringSerializer / Deserializer по умолчанию, либо создайте свои собственные классы сериализации / десериализации.Вы можете увидеть пример использования json-строк с пружинной загрузкой здесь