我不确定在以下情况下会发生什么,如果有人解释它会很有帮助。
生产者(P)发送消息 M1、M2、M3、M4、M5、M6、M7;假设它是从时间 T1 发送到 T7。
假设 ActiveMQ 被用作 JMS Provider (AMQ)
消息消费者 (L) 将是绑定到主题的侦听器。主题名称:jmsTopic
方案 1:
AMQ 正在运行,L 没有连接到 AMQ 中的 jmsTopic。P 将 M1 到 M7 发送到 jmsTopic。如果 L 在时间 T8 连接到 jmsTopic,它大于 T7,它会接收消息 M1 到 M7 还是只接收 T8 时间之后发送到主题的消息。
场景2:AMQ正在运行,L连接并监听jmsTopic,P发送M1到M4。L 接收 M1 到 M4。同时L处理M1到M4,P发送M5到M7,但是L在处理M4的过程中崩溃了。如果 L 再次将自己连接到 jmsTopic ,它会收到 M5 到 M7 还是只有在 L 连接到 jmsTopic 之后发送的消息才会被 L 接收。
场景3:AMQ正在运行,L连接并监听jmsTopic,P发送M1到M7。但是 AMQ 崩溃了;是否知道 AMQ 状态并在 AMQ 启动并运行后重新连接。