2017-01-31 2 views
2

Я планирую использовать распределенную очередь Apache Ignite.Apache Ignite - Распределенная очередь и исполнители

Я использую Ignite с использованием пружинного ботинка. Таким образом, при загрузке я буду добавлять 20 имен в очередь. Но, поскольку в кластере есть 3 сервера, те же 20 имен добавляются 3 раза. Но я хочу добавить их только один раз в очередь.

Ignite ignite = Ignition.ignite(); 

IgniteQueue<String> queue = ignite.queue(
    "queueName", // Queue name. 
    0,   // Queue capacity. 0 for unbounded queue. 
    null   // Collection configuration. 
); 

Распределенные исполнители смогут проводить опрос в очереди и выполнять задачу. Здесь ожидается, что исполнитель опросит, запустит задачу, а затем добавит то же имя в очередь. Пытаемся добиться круглого рога. Только один исполнитель должен выполнять одну и ту же задачу в любой момент времени, хотя в кластере есть несколько серверов.

Любое предложение для этого.

ответ

1

Вы можете запустить службу однопользовательского кластера с воспламенением https://apacheignite.readme.io/docs/cluster-singletons, которая будет заполнять данные в очередь. Также вы можете добавлять данные из узла координатора (самый старый узел в кластере) ignite.cluster(). ForOldest(). Node(). IsLocal()

+0

Нужен ли мне обоим? Надеюсь, только проверка ignite.cluster(). ForOldest(). Node(). IsLocal() будет делать. – user1578872

+0

Да, проверить самый старый узел будет достаточно. –

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