Я хочу знать, возможно ли иметь только один узел в кластерной среде для нашего Liferay 7.1 на локальном хосте.
Вот часть моего портала-ext:
cluster.link.enabled=true
cluster.link.channel.properties.control=/custom_jgroups/tcp.xml
cluster.link.channel.properties.transport.0=/custom_jgroups/tcp.xml
Я установил следующие параметры в настройках виртуальной машины для своего кота:
-Djgroups.bind_addr=127.0.0.1
-Djgroups.tcpping.initial_hosts=127.0.0.1[7800]
В портлете я выполняю задание вручную:
Message message = new Message();
message.put(SchedulerEngine.JOB_NAME, job);
message.put(SchedulerEngine.GROUP_NAME , job);
message.put(SchedulerEngine.DESTINATION_NAME, DestinationNames.SCHEDULER_DISPATCH);
message.setDestinationName(DestinationNames.SCHEDULER_DISPATCH);
log.info("Stream " + streamNumber + " is launched ("+job+")");
try {
ClusterLinkUtil.sendMulticastMessage(message, Priority.LEVEL10);
} catch (Exception e){
log.error(e);
}
При работе с двумя узлами в моем кластере это работает, но при тестировании с одним узлом ничего не происходит.
Вот отладка журнала. Похоже, что сообщение отправлено, но не получено ... Есть идеи?
DEBUG [http-nio-8080-exec-6][ClusterLinkImpl:131] Select channel number 0 for priority LEVEL10
DEBUG [http-nio-8080-exec-6][JGroupsClusterChannel:171] Send multicast message {destinationName=liferay/scheduler_dispatch, response=null, responseDestinationName=null, responseId=null, payload=null, values={GROUP_NAME=com.job.UselessDataPurgeJob, DESTINATION_NAME=liferay/scheduler_dispatch, JOB_NAME=com.job.UselessDataPurgeJob}}