0

У меня мало сомнений в том, как рецепт потребителя будет работать с Zookeeper.Zookeeper Производитель Потребитель

Все примеры, которые я видел до сих пор, имеют производителей и потребителей в тех же процессах java, что и отдельный поток. Но весь смысл распространения - иметь разные экземпляры (несколько) производителя и потребителя.

, имеющий разные экземпляры производителей и потребителей, не имеет никаких локальных замков (синтонизация).

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

Что я здесь делаю?

+0

Трудно сказать, что вы здесь задаете. Возможно, укажите конкретный пример/рецепт и задайте вопросы об этом. Zookeeper работает (действительно, был разработан для) нескольких процессов. – sbridges

+0

@sbridges Благодарим вас и извинения, если я был там двусмыслен. Как мы видим в Java Linked Blocking Queue, метод take() принимает lock/gaurds хвостовой узел перед тем, как выходить из очереди. Таким образом, ни один из двух потоков не будет брать один и тот же узел из хвоста. В случае zookeeper все процессы, наблюдающие за корневым узлом очереди, получат уведомление, и все они смогут захватить один и тот же набор узлов и начать обработку одних и тех же узлов. –

+0

@sbridges Итак, как я могу назвать это распределенной очередью. Я говорю о том, как производитель Zookeeper выбирает производителя. http://zookeeper.apache.org/doc/r3.4.1/zookeeperTutorial.html#sc_producerConsumerQueues –

ответ

0

FYI - увидеть пример производителя/потребителя в Zookeeper взглянуть на Куратор (отказ от ответственности: Я автор Куратор): http://curator.incubator.apache.org/curator-recipes/distributed-queue.html

ПРИМЕЧАНИЕ: Это мое мнение, что Zookeeper является плохим выбором для очереди. Вот сообщение, которое объясняет, почему: https://cwiki.apache.org/confluence/display/CURATOR/TN4

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

  • Нет связанных вопросов^_^