2017-01-26 5 views
1

В настоящее время у нас есть среда кластеров в помещении, где в настоящее время у нас есть 2 кластера с узлами. Мы используем время исполнения Mule 3.8.2. Мы знаем, что кварц не является кластером, и после поиска в Google мы обнаружили, что если мы разворачиваем кварц в кластере, он будет запускаться из обоих узлов одновременно. Так что нам нужно настроить JDBC работы магазина в кварцеКварцевое приложение в кластере Mule без JobStore

Чтобы проверить это, я развернут следующий Mule поток в кластере без работы магазина:

<quartz:connector name="QuartzConn" validateConnections="true" doc:name="Quartz"> 
    <receiver-threading-profile maxThreadsActive="1"/> 
</quartz:connector> 

<flow name="TestFlow" processingStrategy="synchronous"> 
    <quartz:inbound-endpoint name="connectorname" jobName="testjob" repeatInterval="10000" 
       responseTimeout="10000" doc:name="QuartzConn" connector-ref="QuartzConn"> 
     <quartz:event-generator-job> 
      <quartz:payload>This is a test payload</quartz:payload> 
     </quartz:event-generator-job> 
    </quartz:inbound-endpoint> 
    <logger message="Server Name:- #[server.ip+'\n'] This is a message #[function:now]" level="INFO" doc:name="Logger"/> 
    <file:outbound-endpoint path="E:\test" outputPattern="#[server.dateTime.format('YYYY-MM-dd-hh-mm-ss.sss')].txt" responseTimeout="10000" doc:name="File"/> 
</flow> 

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

Node1 писал все файлы:

enter image description here

Пока Node2 молча ждали и наблюдения:

enter image description here

(изображения прилагаются)

Таким образом, чтобы проверить Кроме того, я отключил Node1, и я обнаружил, что Node2 начал собирать задание и писал файл е.

Узел это простое кварцевое приложение без настройки хранилища заданий jdbc. Итак, как я могу объяснить это действие? оба узла настроены с помощью mmc и работают хорошо.

Если кто-нибудь может объяснить кварц в кластере более подробно, было бы полезно.

Благодаря

+0

Оба узла активны в вашем случае? или Node 1 активен, а Node 2 молчат ?. Только при катастрофе Node 1, Node 2 будет активен правильно? – star

+0

В соответствии с документами Mule здесь: - https://docs.mulesoft.com/mule-user-guide/v/3.8/mule-high-availability-ha-clusters Mule использует активную активную модель для кластеров Mule runtimes, а не активной пассивной модели. В активной активной модели ни один узел в кластере не действует как первичный узел; все узлы в кластере поддерживают приложение. Итак, чтобы поддержать кварц в кластере, его снова можно использовать JDBCJobStore, который блокирует экземпляр Quartz как Quartz в не кластере, ... –

+0

Я имел в виду следующий поток: https://forums.mulesoft.com/ вопросы/40531/quartz-connector-in-with-clustering.html и http://www.quartz-scheduler.org/documentation/quartz-2.x/configuration/ConfigJDBCJobStoreClustering Но теперь, к моему удивлению, я нашел он работает без JDBCJobStore –

ответ

-1

Если вы хотите просто попробовать его штраф, но с Mule кластера вам не нужно, чтобы добавить Quartz, вместо этого использовать Poll scope. Вероятно, наличие кластера Mule позволило кварцевую кластеризацию без хранилища заданий JDBC. Однако в некластеризованной настройке Mule (у нас есть 2 некластеризованных узла) кластер Quartz с хранилищем заданий JDBC является только опцией.

Mulesoft играет умный. Они добавили область опроса, которая хороша, но в типичной производственной среде с не менее чем двумя узлами вам нужен только один узел для опроса. Это возможно только при покупке кластера Mule, известного как High Availabilityabity, но доступного только в подписке Platinum (не в Gold). Таким образом, косвенно Mulesoft заставляет клиента покупать или обновлять до платиновой подписки, чтобы получить больше денег из того же продукта.

+0

Это неправда. Кварц не знает кластера, поэтому присутствие кластера Mule не может включить кластеризацию кварца. И во-вторых, я не хочу использовать опрос, так как мне нужно знать, почему он работает, поскольку Mule утверждает, что оба узла являются «активными». Поэтому мне нужно знать, есть ли что-то, чего я здесь не вижу, или Mule сделал что-то с кварцем, чтобы сделать его кластером, что я не могу найти ни в одном документе –

+0

@KalyanKundu, Когда вы запускаете Mule в кластеризованном среда, все нераспределенные хранилища, используемые с транспортом, такими как File, FTP и JDBC - эти магазины считываются одним узлом за раз. По умолчанию кварц использует хранилище данных в памяти, а все кластерные экземпляры Mule используют общую память. Это может объяснить ваш сценарий. Однако в документации Mule нет ссылки на такую ​​информацию. Я предлагаю подтвердить его через поддержку Mule. –

0

«Я не хочу использовать опрос, так как мне нужно знать причину его работы» ... хорошо, что это ваш выбор, но Mule documentation четко заявляет, что область опроса предпочтительнее в кластерной среде.

Принимая во внимание, что в некластеризованной среде вы можете использовать Quartz с хранилищем JDBC для достижения такой же функциональности, хотя и сложной. Разъяснения here и here

Смежные вопросы