0

我有以下简单的代码:

    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

我有一个带有96 k 消息的单个分区的本地 kafka 主题。kafka 库提供的简单 kafka 消费者在大约4 秒内使用这些消息。

但是,上面的代码需要将近1 分钟

在此处输入图像描述

显然,这是我们的应用程序所关心的问题,以前有人经历过吗?我在这里错过了什么吗?

Visual VM 也没有标记任何内容。

PS:我刚刚尝试了自动提交,但我仍然看到了糟糕的表现。

4

2 回答 2

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 客户端)

于 2016-11-17T22:06:20.367 回答
1

感谢@Marius Bogoevici 的研究,发现性能不佳是由 Mac OS 造成的:

https://github.com/spring-cloud/spring-cloud-stream-binder-kafka/issues/71#issuecomment-263280685

发布此内容以供参考,以防其他人遇到此问题。

于 2016-12-03T17:50:58.537 回答