Ich fange an und habe ein Problem mit ActiveMQ festgestellt. Ich bin mit lokaler ActiveMQ ohne Anpassungen, ich einfachWarum wird ActiveMQ Consumer 10 Sekunden lang als verbunden angesehen, nachdem er beendet wurde?
@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++);
}
}
}
und auch einfachen Empfänger Verlag App
@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();
}
}
}
beide sind springboot die geschrieben habe.
Was ich tue, ist:
- Start Empfänger App im Terminal
- Ausgangs Verlag App im Terminal
- eine Ausgabe vom Empfänger zu sehen und zu töten sie mit Strg + c
- Empfänger wieder starten
jetzt fehlt mir die Ausgabe von 10 Sekunden, auch Netstat zeigt für 10 Sekunden, dass connecti on ist
$ 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
Wissen Sie, wie Sie diese 10 Sekunden Verzögerung loswerden? Wenn ich eine Anwendung mit mehreren Instanzen von Empfängern machen werde, kann ich nicht riskieren, Nachrichten für 10 Sekunden zu verlieren, bevor ActiveMQ die Instanzen wechselt, aber im Moment habe ich keine Ahnung, wie ich das beheben kann.
Jede Hilfe wird geschätzt.