Это довольно простое асинхронное приложение, управляемое событиями, которое хорошо подходит для ActiveMQ и Camel.
На самом деле вы не перемещаете сообщения явно из одного экземпляра ActiveMQ в другой. Это работает, используя так называемую сеть брокеров . В вашем случае у вас будет три брокера: ActiveMQ-фиолетовый, ActiveMQ-зеленый и ActiveMQ-синий. ActiveMQ-purple создает однонаправленную брокерскую сеть с ActiveMQ-зеленым и ActiveMQ-синим. Это позволяет ActiveMQ-пурпурному хранить и пересылать сообщения в ActiveMQ-зеленый и ActiveMQ-синий в зависимости от спроса потребителей.
Приложение «Заказы» принимает заказы в очереди заказов в ActiveMQ-purple. Приложение Orders использует Camel для получения и обработки сообщения, чтобы определить, является ли это сообщением-счетом или сообщением о доставке. Camel направляет сообщения либо в очередь выставления счетов, либо в очередь доставки на ActiveMQ-purple.
Потребительский спрос исходит из приложения Invoicing и приложения Shipping. Выставление счетов использует Camel для получения сообщений из очереди выставления счетов на ActiveMQ-green. Приложение Shipping использует Camel для получения сообщений из очереди доставки на ActiveMQ-blue. Из-за сети брокера и из-за потребительского спроса в очереди ActiveMQ-green.invoicing и очереди ActiveMQ-blue.shipping сообщения будут перенаправляться из ActiveMQ-purple в соответствующего посредника и очередь. Нет необходимости явно направлять сообщения конкретному брокеру.
Надеюсь, это ответит на ваши вопросы. Дайте мне знать, если у вас есть.
Брюс