Мул: В чем разница между многоадреально-маршрутизатором и статическим реципиентом-маршрутизатором?

StackOverflow https://stackoverflow.com/questions/3561096

  •  01-10-2019
  •  | 
  •  

Вопрос

Я не могу видеть разницу между многоадреально-маршрутизатором и статическим реципиентом-маршрутизатором. Почему я использовал один над другим?

Согласно с Руководство пользователя Mule-2.x

Список получателей

Маршрутизатор списка получателей может использоваться для отправки одного и того же события на несколько конечных точек на одной конечной точке или для реализации поведения проскальзывания маршрутизации, где следующий пункт назначения для события определяется из свойств события или полезной нагрузки. MULE предоставляет абстрактный список реализации списка получателей org.mule.rooting.oundbound.abstractrecipientList. MULE также предоставляет статический список получателей, который принимает настроенный список конечных точек из текущего события или статически объявленного на конечной точке.

 <outbound>
     <static-recipient-list-router>
        <payload-type-filter expectedType="javax.jms.Message"/>
        <recipients>
                <spring:value="jms://orders.queue"/>
                <spring:value="jms://tracking.queue"/>
        </recipients>
     </static-recipient-list-router> </outbound>

Multicast Router

Многоадресный маршрутизатор может использоваться для отправки того же события на нескольких конечных точках. При использовании этого осторожности маршрутизатора необходимо предпринять для настройки правильных трансформаторов на конечных точках для обработки типа источника события.

 <outbound>
     <multicasting-router>
        <jms:endpoint queue="test.queue"
 transformer-refs="StringToJmsMessage"/>
        <http:endpoint host="10.192.111.11"
 transformer-refs="StringToHttpClientRequest"/>
        <tcp:endpoint host="10.192.111.12"
 transformer-refs="StringToByteArray"/>
        <payload-type-filter expectedType="java.lang.String"/>
     </multicasting-router> </outbound>

Помните, что следует принимать уход, чтобы гарантировать, что маршрутизатор сообщения преобразуется в формат, который понимает конечную точку.

Это было полезно?

Решение

Прямо изо рта лошади (Мул в действии, Дэвид Доссон, Джон д'Имк, с. 98..100)

Маршрутизатор списка статического получателя позволяет одновременно отправлять то же сообщение на несколько конечных точек. Вы обычно используете статический список получателей, когда каждая конечная точка использует один и тот же транспорт. Это часто в случае с VM и JMS конечными точками.

Используйте статические списки получателей при отправке одного и того же сообщения для конечных точек с использованием идентичных транспортов

Многоадресный маршрутизатор аналогичен списку статического получателя, в том, что он одновременно отправляет одно и то же сообщение через набор исходящих конечных точек. Разница состоит в том, что многоадресный маршрутизатор используется, когда список конечных точек содержит различные типы транспортов.

Используйте многоадресный маршрутизатор при отправке одного и того же сообщения для конечных точек с использованием разных транспортов

Другие советы

Вот как я понимаю это:

Маршрутизатор статического реципиента-списка отправит полезную нагрузку каждому получателю в том, что они перечислены. Это дает вам возможность изменять полезную нагрузку, прежде чем перейти к следующей конечной точке. Это также дает вам возможность прекращать обработку в случае ошибки.

Многоадрес-маршрутизатор отправляет одинаковую полезную нагрузку на все конечные точки одновременно. Вы не сможете изменить полезную нагрузку для каждой конечной точки. Вы не сможете остановить другие конечные точки от обработки, если один из конечных точек выходит из строя.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top