2017-10-19 16 views
1

J'envisage d'utiliser Apache camel pour implémenter des patterns EIP dans notre solution. Notre exigence est de construire un système tolérant aux pannes qui peut récupérer des pannes. Je comprends les capacités de gestion des erreurs natives disponibles avec Apache Camel (canaux lettre morte) et ils satisfont mes exigences.Apache Camel - Récupération à partir d'un crash JVM

Cependant, il ne me semble pas clair comment configurer notre solution afin que nous puissions récupérer d'une erreur fatale, disons le crash JVM. Quelle est la meilleure façon de faire redémarrer l'application Camel à partir du dernier état connu après un crash JVM, sachez que je n'utilise pas de file d'attente permanente pour maintenir l'état du système?

Je pense que Spring Integration fournit une configuration pour créer des canaux persistants. Apache Camel prend-il en charge une configuration similaire?

Répondre

1

Oui, vous pouvez utiliser la messagerie pour le stockage persistant afin de pouvoir créer des applications tolérantes aux pannes qui peuvent survivre à un incident JVM. Ce que vous choisissez d'utiliser comme stockage persistant est votre choix. Par exemple, vous pouvez utiliser des courtiers de messages JMS tels qu'Apache ActiveMQ/Artemis et utiliser le composant Camel JMS pour les routes où vous pouvez utiliser JMS transactionnel pour garantir que les messages ne sont pas traités, à moins qu'ils ne soient traités correctement. Le message est toujours sur le courtier et peut être retraité lorsque la JVM est à nouveau opérationnelle, etc.

Mais il existe différentes manières de concevoir un système tolérant aux pannes. Apache Camel est ouvert à cet égard et permet votre liberté.