Многократный вызов входящих конечных точек ВМ в потоке Mule, повлияет ли это на производительность? Мул ESB

Мне нужны пояснения по использованию ВМ.

У меня большой поток в Mule ESB, где я использую VM Inbounds в некоторых потоках.

Скажем: всего у меня есть 3 потока с виртуальной машиной (входящей) в качестве отправной точки.

Но я должен был вызывать эти потоки несколько раз с помощью ВМ (исходящий). По каждой транзакции я звоню почти 20 раз.

Опять же, у меня нет нескольких входящих конечных точек ВМ (с другим именем), только 3 ВМ (входящие), только эти 3 ВМ вызываются несколько раз. Это повлияет на производительность ??? . Пример для 1 потока, как показано ниже

   <flow name="Audit" doc:name="Audit">
    <vm:inbound-endpoint exchange-pattern="one-way" path="${vm.audit}" doc:name="Audit" connector-ref="MAIN_VM"/>
    <object-to-string-transformer doc:name="Object to String"/>
    <set-variable doc:name="Variable" value="#[payload]" variableName="capturePayload"/>
    <data-mapper:transform config-ref="Construct_Logger_XML" input-ref="#[flowVars[&quot;capturePayload&quot;]]" doc:name="DataMapper">
 <data-mapper:input-arguments>
     ...
 </data-mapper:input-arguments>
    </data-mapper:transform>
    <byte-array-to-string-transformer doc:name="Byte Array to String"/>
    <logger level="INFO"  doc:name="CaptureAuditLogs" message="AuditInfo:#[function:dateStamp], AuditLogPayload: #[payload]" category="AuditInfo">-
  </flow>

Надеюсь, вопрос понятен. Ищу твои мысли. Версия Mule: 3.5.1 Заранее спасибо.


person star    schedule 27.01.2015    source источник


Ответы (1)


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

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

Если вы вызываете поток из потока и не используете mule EE, вам, вероятно, следует предпочесть flow-ref исходящему vm, так как flow-ref игнорирует входящую конечную точку и переходит прямо к процессорам.

person Víctor Romero    schedule 28.01.2015
comment
Я использую только EE. Подробнее о потоке, который я вызываю для целей аудита и ведения журнала (без использования Logger с Log4j). Поэтому везде, где мне нужно вызвать поток аудита или поток регистратора, я использую область Async с внутренней виртуальной машиной для вызова последующего потока (входящего потока виртуальной машины). Это нормально? Не повлияет на производительность r8? - person star; 28.01.2015
comment
Не должно быть проблем. Однако вы, вероятно, слишком много работаете с async plus и enpoint, вы можете просто использовать одностороннюю конечную точку vm. - person Víctor Romero; 28.01.2015
comment
Спасибо за вашу помощь. Это здорово, я волновался, что это может повлиять на производительность. Хорошая помощь в нужное время. Я буду продолжать идти по тому же пути вперед. - person star; 29.01.2015