2016-05-13 7 views
0

Ich mag ein Experiment laufen, in dem der Verleger Verbindung mit dem Makler verliert und dann reiht Nachrichten in seiner eigenen Warteschlange und dann, wenn es Konnektivität gewinnt sendet er alle seine Nachrichten in der Warteschlange an den Makler. Wie kann ich das tun, da wenn ich eine enge Verbindung anrufe, kann ich nicht mehr senden (löst eine Ausnahme aus). Ein Trick, den ich mir vorstellen kann, besteht darin, ein Netzwerk aus zwei Brokern zu verwenden und das obige zu simulieren, indem ich die Verbindung zwischen den beiden Brokern aufbringe. Gibt es einen API-Aufruf, den ich verwenden kann, um das oben genannte zu tun? DieseSimulieren Verlust von Broker Verlag Konnektivität in ActiveMQ

ist sehr ähnlich wie Facebook Messenger oder whatsapp wirken als Verleger und Einreihen unsere Botschaften senden, wenn wir offline sind und sendet sie, sobald wir verbunden sind.

Antwort

0

Es gibt viele Lösungen ist die Verbindung verwenden, um könnten zu brechen, hier zu testen, ist eine nicht vollständige Liste:

  • ein Skript, das/ungesetzt eine Firewall-Regel auf Ihrem environement einstellen Sperrung der Verbindungsanschluss

  • Wenn Sie mit VMs arbeiten, können Sie die eine Lauf ActiveMQ Suspend/Resume, können Sie es sogar mit Tools wie vagrant automatisieren (vagrant suspendieren, dann Vagrant up)

  • Tweak die Verbindung Zugriff auf manualy die activemq JMX

  • eine activemq entwickeln können Plugin-Verbindungen auf Nachfrage in den Papierkorb (oder vielleicht ist es eine?)

Jetzt, um dort zu erhalten, das Verhalten, das Sie haben wollen ist Machen

1) sicher, dass Ihre Verbindung Failover ist so kann es wiederhergestellt werden, und speichern sie Ihre Nachricht auf der Festplatte, bevor sie mit dem Hersteller zu senden: zwei Möglichkeiten.

2) Produzieren zu einem lokalen Broker in Ihrer App embbeded und verbinden diese zu dem Remote-Broker.

+0

Sie scheinen Wege vorzuschlagen, um eine Verbindung zu schließen. Wenn ich das mache, funktioniert das Senden nicht mehr, da die Verbindung unterbrochen ist. Ich möchte weiter senden und Nachrichten in einer internen Struktur des Herstellers in die Warteschlange gestellt haben. – user3740387