Я работаю над отправкой журналов из приложения Spring Boot в Kafka с использованием Log4j2. Из моих исследований видно, что формат сообщений AVRO является эффективным способом отправки сообщений в Kafka. Однако, когда я проверил «org / apache / kafka / log4jappender / KafkaLog4jAppender. java« Я вижу, что он использует ByteArraySerializer.
private static final String KEY_SERIALIZER_CLASS_CONFIG = ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG;
private static final String VALUE_SERIALIZER_CLASS_CONFIG = ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG
props.put(KEY_SERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.ByteArraySerializer");
props.put(VALUE_SERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.ByteArraySerializer");
this.producer = getKafkaProducer(props);
Существует другой класс »org / apache / logging / log4j / core /appender/mom/kafka/KafkaAppender.java"
Похоже, что этот поддерживает сериализатор Avro. Приведенная ниже ссылка содержит пример log4j2 Kafka Appender, однако есть вопрос, который был задан, но не получил ответа. Не могли бы вы взглянуть на это и дать мне знать, что это правильный подход.
http://mail-archives.apache.org/mod_mbox/kafka-users/201608.mbox/%3CSN2PR05MB24610165F4741F91BD6B2C40B2E10@SN2PR05MB2461.namprd05.prod.outlook.com%3E
Спасибо за вашу помощь заранее.