Позвольте мне предварить это тем фактом, что я все еще очень плохо знаком с Apache Верблюдом. Я все еще пытаюсь понять, как все это работает, и что нужно сделать (и КАК это сделать) для достижения определенного эффекта.
Я пытаюсь разработать приложение Spring Boot, которое будет использовать Apache Верблюд для управления передачей (и, возможно, также получением) данных в / из ряда возможных источников и пунктов назначения. Цель приложения - предоставить средства для создания / генерации сетевого трафика c, на уровне сетевого приложения , который будет передаваться в другое приложение Spring Boot - назовем это целевым объектом. Мы пытаемся наблюдать и измерять влияние различных сетевых нагрузок на цель.
Мы хотели бы иметь возможность передавать данные по ряду протоколов, включая: ftp, http / s, файловые системы (nfs ), различные почтовые протоколы (smtp, pop) и протоколы потоковой передачи данных для голоса и видео. Возможно, позже будут добавлены другие протоколы. Сами данные не имеют значения, нам просто нужно иметь возможность передавать данные по различным протоколам с различными нагрузками.
Эти приложения / службы будут работать в контейнерной среде (Docker), которая будет выполняться в нашем локальная среда разработки и тестирования, а также, возможно, облачная среда, такая как AWS. Мы использовали Docker, Ansible, Terraform и в настоящее время работаем над использованием Kubernetes и Istio для управления настройкой, развертыванием и эксплуатацией этих приложений.
Мы должны быть в состоянии предоставить указать c конфигурации маршрутов Camel для конкретных развертываний.
Может показаться, что предпочтительным способом настройки маршрутов Camel является использование Java DSL, а не XML DSL. Документация Camel и почти любой другой источник информации, который я обнаружил, имеют сильный уклон к использованию Java DSL. Примеров конфигурации XML DSL-маршрутов далеко и мало.
Мое первоначальное впечатление состоит в том, что переход по маршруту Java DSL (извините за каламбур) не будет работать должным образом с нашей необходимостью развертывания Приложение Camel с заданной конфигурацией маршрута c. Похоже, вам необходимо иметь в коде Java определенные в DSL конфигурации маршрутов, встроенные в код.
Мы думаем, что будет проще предоставить конкретную c конфигурацию маршрута через файл XML, который может быть включенным в развертывание, поэтому я пытаюсь исследовать и экспериментировать с XML DSL. Возможно, мы ошибаемся в этом отношении.
Мой вопрос к сообществу: : Учитывая то, что я описал выше, можно ли использовать подход Java DSL для удовлетворения требований, поскольку я описал их? Можем ли мы использовать Java DSL таким образом, чтобы можно было настроить динамический c маршрут? Имейте в виду, что мы не будем пытаться изменить конфигурацию во время работы, просто в процессе развертывания.
Если Java DSL может использоваться для этой цели, это будет очень признателен, если ссылки на документацию, примеры и т. д. c. могут быть предоставлены.