Apache Camel | Tracer vs Event Notifier для генерации аудиторской информации
В ответ на мой предыдущий вопрос Apache Camel Tracer | Будет ли уровень журнала иметь значение в количестве записанной информации, связанной с Tracer, я немного растерялся, стоит ли мне использовать настроенный tracer или настроенный уведомитель о событиях для генерации аудиторской информации. Эта информация аудита поможет нам отслеживать состояние сообщений верблюда и предоставлять клиенту отчет о состоянии. Мы не хотим полагаться на то, что разработчики размещают журналы на своих маршрутах для этой цели.
Допустим, у меня есть маршрут, который читает файл с несколькими записями пользователей. Эти записи читаются, проверяются, преобразуются и отправляются в другую систему через веб-сервис. Нам нужно зарегистрировать сообщение (или Exchange), поскольку оно проходит через каждый узел. Затем мы сможем создавать отчеты о состоянии для клиентов и информировать их о неудаче или успехе каждой передачи и каждой пользовательской записи. В будущем мы также можем расширить эту функцию, чтобы отправить статус онлайн клиентам
Tracer - это, прежде всего, механизм ведения журналов, а также предоставляет MBean, которым можно управлять через консоль JMX. Event Notifier будет "перехватывать" разные события, и тогда может быть предпринято соответствующее действие (в этом случае ведение журнала). Преимущество Event Notifier заключается в том, что в будущем я могу добавить дополнительные функции, такие как отправка электронного письма в службу поддержки в случае сбоя.
Итак, вопрос в том, какой из двух вариантов больше подходит для этого типа целей. Несколько решающих параметров могут быть:
Влияние на производительность (в производстве)
Простота обслуживания
Будущее улучшение
Управление через JMX Console
Плюс любой другой подход, который можно использовать для реализации этого варианта использования.