spring-boot - 带有 MANUAL_IMMEDIATE ack 的 Spring Boot Kafka
问题描述
我有一个 Springboot 应用程序。使用此配置:
kafka:
consumer:
listener:
ack-mode: MANUAL_IMMEDIATE
广告这个消费者:
@KafkaListener(topics = "test", groupId = "group_id")
public void consume(String message, Acknowledgment ack) throws IOException {
ack.acknowledge();
}
但是收到消息时出现此错误:
org.springframework.messaging.converter.MessageConversionException: Cannot convert from [java.lang.String] to [org.springframework.kafka.support.Acknowledgment] for GenericMessage
解决方案
您的 YAML 似乎没有被读取;我刚刚测试过
更正
您的 YAML 无效 - 删除该consumer
元素。
spring:
kafka:
consumer:
auto-offset-reset: earliest
listener:
ack-mode: MANUAL_IMMEDIATE
它工作得很好;删除ack-mode
给我的错误与您看到的相同。
@SpringBootApplication
public class So60929385Application {
public static void main(String[] args) {
SpringApplication.run(So60929385Application.class, args);
}
@KafkaListener(id = "so60929385", topics = "so60929385")
public void listen(String in, Acknowledgment ack) {
System.out.println(in);
ack.acknowledge();
}
@Bean
public ApplicationRunner runner(KafkaTemplate<String, String> template) {
return args -> template.send("so60929385", "foo");
}
@Bean
public NewTopic topic() {
return TopicBuilder.name("so60929385").partitions(1).replicas(1).build();
}
}
推荐阅读
- java - spring boot Tomcat部署样式未加载到资源文件夹中
- php - 链接模型 cakephp 2.x
- haskell - 防止参数成为复数
- amazon-web-services - Amazon EC2 免费套餐何时会超出其限制?
- r - 如何在 R 中安装 ROCR 包?
- beautifulsoup - 使用 BeautifulSoup 从 URL 列表中抓取电子邮件
- javascript - 在node.js中合并多个不同格式的对象
- python - interp2d 使用时未处理正确无序的输入
- python - 根据正值和负值对数据框列的值进行排序?
- python - 为什么这段代码会使 Tkinter 窗口不断地自动调整大小/增长?