Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache kafka 阻止quarkus/vertx反应性消息中的kafka消息处理程序_Apache Kafka_Vert.x_Quarkus - Fatal编程技术网

Apache kafka 阻止quarkus/vertx反应性消息中的kafka消息处理程序

Apache kafka 阻止quarkus/vertx反应性消息中的kafka消息处理程序,apache-kafka,vert.x,quarkus,Apache Kafka,Vert.x,Quarkus,我有一个从kafka队列读取的Quarkus应用程序,处理每个消息可能需要几秒钟。它们可以并行处理。但是,我无法让Kafka消费者使用反应式消息传递应用程序提供的工作线程池从队列中并行读取消息 我的代码: public class SlowKafkaConsumer { @Blocking(ordered = false) @Incoming("topic") public void onMessage(String message) throws

我有一个从kafka队列读取的Quarkus应用程序,处理每个消息可能需要几秒钟。它们可以并行处理。但是,我无法让Kafka消费者使用反应式消息传递应用程序提供的工作线程池从队列中并行读取消息

我的代码:

public class SlowKafkaConsumer {

    @Blocking(ordered = false)
    @Incoming("topic")
    public void onMessage(String message) throws InterruptedException {
        Thread.sleep(1000);
        System.out.println(Thread.currentThread().getName() + " " + Instant.now().toString() + " " + message);
    }
}
我在这里用Thread.sleep模拟一个缓慢的消费者,但是我在方法上添加了
@Blocking
ordered=false
。从中,我希望能够同时处理20条(默认线程池大小)消息

但是,我从程序中得到的输出是:

vert.x-worker-thread-0 2020-11-13T13:25:09.867905300Z Hello
vert.x-worker-thread-1 2020-11-13T13:25:10.885309700Z Hello
vert.x-worker-thread-2 2020-11-13T13:25:11.887364600Z Hello
vert.x-worker-thread-3 2020-11-13T13:25:12.889545300Z Hello
正如您所看到的,每个消息都由不同的线程处理(我可以看到它最终会使用多达20个不同的线程),但每个消息都是按顺序处理的,每个消息之间的间隔为1秒,而不是同时处理20个线程

有人能帮我指出哪里出了问题吗