Мул: В чем разница между многоадресным маршрутизатором и статическим маршрутизатором списка получателей? - PullRequest
2 голосов
/ 25 августа 2010

Я действительно не вижу разницы между многоадресным маршрутизатором и статическим маршрутизатором списка получателей.Зачем мне использовать один поверх другого?

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

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

Список получателейМаршрутизатор может использоваться для отправки одного и того же события нескольким конечным точкам через одну и ту же конечную точку или для реализации поведения проскальзывания при маршрутизации, когда следующий пункт назначения для события определяется из свойств события или полезной нагрузки.Mule предоставляет реализацию абстрактного списка получателей org.mule.routing.outbound.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>

Multicasting Router

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

 <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>

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

Ответы [ 2 ]

3 голосов
/ 21 сентября 2010

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

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

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

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

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

0 голосов
/ 07 сентября 2010

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

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

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

...