我有以下简单的代码:
private int i = 0;
@StreamListener(Sink.INPUT)
public void processMessage(Message<?> message) {
i++;
}
@Scheduled(fixedDelay=5000)
private void scheduled(){
LOG.info("Messages consumed: " + i);
}
以及以下属性:
spring.cloud.stream.bindings.input.consumer.headerMode=raw
spring.cloud.stream.kafka.binder.autoCreateTopics=false
spring.cloud.stream.kafka.bindings.input.consumer.autoCommitOffset=false
spring.cloud.stream.bindings.input.destination=test6
spring.cloud.stream.bindings.input.group=testGroup50
spring.cloud.stream.bindings.input.partitioned=false
我有一个本地kafka主题,其中包含 96 k消息的单个分区。 kafka库提供的简单kafka消费者在大约 4秒中消费这些消息。
但是,上面的代码接近 1分钟!
显然,这是我们的应用程序的一个问题,有没有人经历过这个?我在这里错过了什么吗?
Visual VM也没有标记任何内容。
PS :我刚试过自动提交,但我仍然看到了糟糕的表现。
答案 0 :(得分:1)
我认为最好在https://github.com/spring-cloud/spring-cloud-stream-binder-kafka中打开Git Hub问题。
另外,您是否可以指出您使用的是哪个版本以及您的邮件大小,以便我们可以重复测量?感谢。
编辑:根据https://github.com/spring-cloud/spring-cloud-stream-binder-kafka/issues/71中的讨论,这似乎是特定于macOS(迄今为止在Sierra和El Capitan上再现)和0.9客户端
答案 1 :(得分:1)
感谢@Marius Bogoevici的研究,发现性能不佳是由Mac OS引起的:
https://github.com/spring-cloud/spring-cloud-stream-binder-kafka/issues/71#issuecomment-263280685
发布此信息以供其他人遇到此问题。