Hallo zusammen,
ich habe ein System, das hauptsächlich Daten-Routing macht. Hierbei werden die Daten mit apache camel und ActiveMQ über mehrere Microservices hinweg geroutet.
Jeder Microservice hat seine eigene ActiveMQ-Instanz und einen eigenen Camel-Context (siehe "Skizze" unten)
Die Verarbeitung der Daten ist nicht zeitkritisch, aber die Daten veralten nach einer gewissen Zeit (z.B. 2 Stunden). Ist es möglich mit camel-Mitteln der Nachricht ein Expire-Date zu geben, das über alle Routen hinweg geprüft wird? Oder muss ich das manuell implementieren?
Ich habe das hier gefunden: https://camel.apache.org/components/4.4.x/eips/message-expiration.html Aber das klingt für mich so, als bezieht sich das nur auf genau eine Route und nicht auf die gesamte Kette. Dann würden sich die TTL-Zeiten ja im Extremfall über die Gesamtroute aufsummieren oder zu früh abbrechen.
Hier eine vereinfachte "Skizze":
ich habe ein System, das hauptsächlich Daten-Routing macht. Hierbei werden die Daten mit apache camel und ActiveMQ über mehrere Microservices hinweg geroutet.
Jeder Microservice hat seine eigene ActiveMQ-Instanz und einen eigenen Camel-Context (siehe "Skizze" unten)
Die Verarbeitung der Daten ist nicht zeitkritisch, aber die Daten veralten nach einer gewissen Zeit (z.B. 2 Stunden). Ist es möglich mit camel-Mitteln der Nachricht ein Expire-Date zu geben, das über alle Routen hinweg geprüft wird? Oder muss ich das manuell implementieren?
Ich habe das hier gefunden: https://camel.apache.org/components/4.4.x/eips/message-expiration.html Aber das klingt für mich so, als bezieht sich das nur auf genau eine Route und nicht auf die gesamte Kette. Dann würden sich die TTL-Zeiten ja im Extremfall über die Gesamtroute aufsummieren oder zu früh abbrechen.
Hier eine vereinfachte "Skizze":
Code:
+-------------------------------+
| Microservice 1 |
| |
| +------------+ |
| | ActiveMQ 1 | |
| +------------+ |
| |
| from(external).to(activemq_1) |
+-------------------------------+
+---------------------------------+
| Microservice 2 |
| |
| +------------+ |
| | ActiveMQ 2 | |
| +------------+ |
| |
| from(activemq_1).to(activemq_2) |
| from(activemq_2).to(activemq_3) |
| |
+---------------------------------+
+---------------------------------+
| Microservice 3 |
| |
| +------------+ |
| | ActiveMQ 3 | |
| +------------+ |
| |
| from(activemq_3).to(external) |
| |
+---------------------------------+
Zuletzt bearbeitet: