如果您这样更好地理解它,请
consumer.receive()使用 拉 模型:您从队列中读取内容,并被阻止等待此消息,直到消息出现或超时为止。
使用侦听器使用 推 模型:注册一个侦听器,并在收到消息时在单独的线程中调用该侦听器。
一切都在Java线程中完成,并且侦听器调用也不例外。侦听器消息处理是否阻止队列中其他消息的处理,取决于有多少个线程专用于消息处理。如果将Spring配置为使用5个线程池来异步处理消息,则5个侦听器将能够并行处理消息。

如果您这样更好地理解它,请
consumer.receive()使用 拉 模型:您从队列中读取内容,并被阻止等待此消息,直到消息出现或超时为止。
使用侦听器使用 推 模型:注册一个侦听器,并在收到消息时在单独的线程中调用该侦听器。
一切都在Java线程中完成,并且侦听器调用也不例外。侦听器消息处理是否阻止队列中其他消息的处理,取决于有多少个线程专用于消息处理。如果将Spring配置为使用5个线程池来异步处理消息,则5个侦听器将能够并行处理消息。