В кластере с одним узлом эта строка
final IQueue<Object> queue = hz.getQueue("test");
возвращает ссылку на очередь в текущем экземпляре, по сути локальную ссылку.
Когда добавляется больше экземпляров,сама очередь может быть перенесена для размещения в другом экземпляре, поэтому теперь ссылка на удаленную очередь.
Есть несколько способов проверить это.Вероятно, самым простым было бы продлить время теста, частично присоединить второй узел и посмотреть, не изменится ли производительность.Очевидно, вы бы хотели, чтобы только первый процесс выполнял действия offer()
/ take()
.
Если хотите, добавьте
System.out.println(hz.getPartitionService().getPartition("test").getOwner());
, чтобы найти место, в котором находится очередь, какдругие участники присоединяются к кластеру.