私は始めて、ActiveMQにいくつかの問題が発生しました。私は、単純なパブリッシャーアプリActiveMQ消費者はなぜそれを殺した後10秒間接続されたと見なされますか?
@Component
public class VirtualTopicSender {
@Autowired
private JmsTemplate jmsTemplate;
public void send() {
Topic topic = new ActiveMQTopic("VirtualTopic.TEST-VIRTUAL-TOPIC");
int i = 0;
while(true) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
jmsTemplate.convertAndSend(topic, i++);
}
}
}
とも簡単な受信機
@Component
public class VirtualTopicReceiver {
@JmsListener(destination="Consumer.myConsumer0.VirtualTopic.TEST-VIRTUAL-TOPIC", containerFactory = "defaultMessageListenerContainerFactory")
public void receiveMessages(Session session, String message) {
System.out.println(message);
try {
session.commit();
} catch (JMSException e) {
e.printStackTrace();
}
try {
System.out.println(session.getTransacted());
} catch (JMSException e) {
e.printStackTrace();
}
}
}
両方がspringboot年代ですが書いた、すべてのカスタマイズせずにローカルのActiveMQを使用しています。
私は何をやっていることは次のとおりです。
- は、受信機からいくつかの出力を見て、端末
- 端末
- 開始パブリッシャーアプリで受信アプリを起動して、再度受信を開始するCtrl + C
- でそれを殺します
現在、10秒間の出力が欠落しています.netstatも10秒間表示されています。オンになっている
$ netstat -an | grep 575* | grep 61616
TCP 127.0.0.1:57809 127.0.0.1:61616 ESTABLISHED
TCP 127.0.0.1:61616 127.0.0.1:57788 TIME_WAIT
TCP 127.0.0.1:61616 127.0.0.1:57789 TIME_WAIT
TCP 127.0.0.1:61616 127.0.0.1:57790 TIME_WAIT
TCP 127.0.0.1:61616 127.0.0.1:57791 TIME_WAIT
TCP 127.0.0.1:61616 127.0.0.1:57792 TIME_WAIT
TCP 127.0.0.1:61616 127.0.0.1:57793 TIME_WAIT
TCP 127.0.0.1:61616 127.0.0.1:57794 TIME_WAIT
TCP 127.0.0.1:61616 127.0.0.1:57795 TIME_WAIT
TCP 127.0.0.1:61616 127.0.0.1:57796 TIME_WAIT
TCP 127.0.0.1:61616 127.0.0.1:57797 TIME_WAIT
TCP 127.0.0.1:61616 127.0.0.1:57798 TIME_WAIT
TCP 127.0.0.1:61616 127.0.0.1:57799 TIME_WAIT
TCP 127.0.0.1:61616 127.0.0.1:57800 TIME_WAIT
TCP 127.0.0.1:61616 127.0.0.1:57801 TIME_WAIT
TCP 127.0.0.1:61616 127.0.0.1:57802 TIME_WAIT
TCP 127.0.0.1:61616 127.0.0.1:57803 TIME_WAIT
TCP 127.0.0.1:61616 127.0.0.1:57804 TIME_WAIT
TCP 127.0.0.1:61616 127.0.0.1:57805 TIME_WAIT
TCP 127.0.0.1:61616 127.0.0.1:57806 TIME_WAIT
TCP 127.0.0.1:61616 127.0.0.1:57808 TIME_WAIT
TCP 127.0.0.1:61616 127.0.0.1:57809 ESTABLISHED
あなたはその10秒の遅延を取り除く方法を知っていますか?受信者の複数のインスタンスでアプリケーションを作成する場合、ActiveMQがインスタンスを切り替える前に10秒間メッセージを失うことはありませんが、今のところそれを修正する方法はありません。
ご協力いただければ幸いです。