В настоящее время у нас есть среда кластеров в помещении, где в настоящее время у нас есть 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 писал все файлы:
Пока Node2 молча ждали и наблюдения:
(изображения прилагаются)
Таким образом, чтобы проверить Кроме того, я отключил Node1, и я обнаружил, что Node2 начал собирать задание и писал файл е.
Узел это простое кварцевое приложение без настройки хранилища заданий jdbc. Итак, как я могу объяснить это действие? оба узла настроены с помощью mmc и работают хорошо.
Если кто-нибудь может объяснить кварц в кластере более подробно, было бы полезно.
Благодаря
Оба узла активны в вашем случае? или Node 1 активен, а Node 2 молчат ?. Только при катастрофе Node 1, Node 2 будет активен правильно? – star
В соответствии с документами Mule здесь: - https://docs.mulesoft.com/mule-user-guide/v/3.8/mule-high-availability-ha-clusters Mule использует активную активную модель для кластеров Mule runtimes, а не активной пассивной модели. В активной активной модели ни один узел в кластере не действует как первичный узел; все узлы в кластере поддерживают приложение. Итак, чтобы поддержать кварц в кластере, его снова можно использовать JDBCJobStore, который блокирует экземпляр Quartz как Quartz в не кластере, ... –
Я имел в виду следующий поток: https://forums.mulesoft.com/ вопросы/40531/quartz-connector-in-with-clustering.html и http://www.quartz-scheduler.org/documentation/quartz-2.x/configuration/ConfigJDBCJobStoreClustering Но теперь, к моему удивлению, я нашел он работает без JDBCJobStore –