我已经使用 Kafka 配置了我的 Spring Boot 项目。我可以接收和发布任何基于字符串的消息。
字符串消息不是处理的最佳方式。具有将消息从字符串默认转换为对象的功能会更有用。
实现这个功能我需要将几乎所有的 Kafka 配置从yml到java(使用属性)。...生产者示例
@Bean
public Map<String, Object> producerConfigs() {
Map<String, Object> props = new HashMap<>();
props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapServers);
props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, AccountSerializer.class);
return props;
}
@Bean
public ProducerFactory<String, Account> producerFactory() {
return new DefaultKafkaProducerFactory<>(producerConfigs());
}
@Bean
public KafkaTemplate<String, Account> kafkaTemplate() {
return new KafkaTemplate<>(producerFactory());
}
该代码有效,但我接受了简化。在最好的情况下,我想优雅地配置yml,可能是一些 java 更改。但是以直接方式进行操作时,我将获得额外的每 3 个 bean 来配置每个kafkaTemplate和listenerFactory.
它是否可能简化未来的配置(我需要更多额外的Serializer“解串器”)?如何?
临摹微笑
倚天杖
相关分类