Ich bin ein neuer Benutzer der ActiveMQ-Technologie, und ich habe ein Problem bei der Annäherung an diese Technologie.ActiveMq: persistente Warteschlange und Offline-System
Ich habe folgende Situation:
- Ich habe einen SW, in einem eingebetteten (offline) ARM-Gerät ausgeführt wird, die eine Reihe von Videos auf einem upluggable Festplatte zur Laufzeit archivieren.
- Manchmal (4-5 Ereignisse pro Tag) muss ich diesen Videos ein Alarmereignis zuordnen und den Alarm in einer persistenten Warteschlange einreihen.
- Einmal im Monat haben wir die Festplatte zu extrahieren und sie an einem anderen eingebetteten Online ARM-Gerät anschließen, das sollte einen ActiveMQ-Server über die von dem offline ARM-Gerät erzeugten Alarme benachrichtigt
Und Nun meine Frage: Wie kann ich die persistente Warteschlange auf der Festplatte speichern, so dass die vom Offline-ARM-Gerät generierten Ereignisse dem Online-ARM-System zur Verfügung stehen (), ist die einzige "Verbindung" zwischen online und offline eingebettetem Gerät Festplatte)?
Bitte beachten Sie, dass ich die Art, wie ich Nachrichten an den Online-Server übertrage, nicht ändern kann, da es sich um ein System handelt, das nicht von meiner Firma entwickelt wurde.
Mit freundlichen Grüßen
Giovanni
Hallo Matt, ich glaube, ich den vorgeschlagenen Ansatz verstehen. Wenn die Karte A für 2 Tage offline ist und der dritte Tag über den statischen Anschluss mit dem Host C verbunden ist, auf dem der "Server" ausgeführt wird, werden die Nachrichten in der Warteschlange ordnungsgemäß zugestellt. Allerdings habe ich Zweifel bezüglich meines Systems: Gerät A ist offline und generiert Nachrichten; Die Festplatte wird einmal pro Woche von A getrennt und mit B verbunden, eine Karte mit derselben SW, die auf A läuft, aber mit dem ActiveMq Server Broker verbunden ist. Ich verstehe nicht, wie Nachrichten von ActiveMq auf Board A an Server C von Board B geliefert werden können. – Giox79
Wenn der Speicherort der ActiveMQ Kahadb-Dateien im selben Verzeichnis über alle Boards ist und die ActiveMQ-Version ist Das selbe: Die SW an Bord B sollte den Broker anwerfen, die von A auf der Festplatte gespeicherten Nachrichten lesen und an Server C übergeben. –
Eine andere Option könnte eine kompensierende Transaktion oder ein Dateisystem-als-eine-Warteschlange-Ansatz sein. Speichern Sie die Dateien in einem Ordner, lassen Sie einen Prozess erkennen, wenn der Speicher angeschlossen ist (Dateisystemmonitor oder Cron-Job), und veröffentlichen Sie die Nachrichten dann auf dem Server auf dem Server C, wenn ein Verbindungstest bestanden wird. –