并行化Pulsar消费者工作负载的最佳方式是什么



我想使用Pulsar作为使用共享消费者和Java客户端的消息队列。目前,没有严格的订购要求,也没有分区。由消息触发的任务通常需要长达2秒的时间。有没有明确的偏好,应该选择以下两种在单个应用程序实例中的线程之间分配工作的方法中的哪一种:

  1. 1个消费者,接收队列大小为100,线程池中有10个线程在循环中调用consumer.receive()
  2. 10个消费者,每个消费者的接收队列大小为10,使用MessageListener接口并在原始MessageListener.receive()调用中运行任务

最好的答案应该是-只需测量:(也就是说,第一种方法应该更高效,因为不涉及代理通信开销。

最新更新