0

Je n'ai que peu de doutes sur la façon dont la recette du producteur va fonctionner avec Zookeeper.Zookeeper Producer Consumer

Tous les exemples que j'ai vus jusqu'à présent ont les producteurs et les consommateurs dans les mêmes processus java que thread séparé. Mais le but d'être distribué est d'avoir différentes instances (multiples) de producteur et de consommateur. Avec des instances différentes de producteurs et de consommateurs, aucun verrou local (syntonisation) ne sera utile.

De même, étant donné que plusieurs processus surveillent le même nœud de file d'attente racine, ils commencent tous à traiter une entrée entrante particulière.

Ce que je me trompe ici ???

+0

Il est difficile de dire ce que vous demandez ici. Peut-être pointer vers un exemple/recette spécifique, et poser des questions à ce sujet. Zookeeper fonctionne (en effet a été conçu pour) plusieurs processus. – sbridges

+0

@sbridges Merci et mes excuses si j'étais ambigu là-bas. Comme nous le voyons dans Java Linked Blocking Queue, la méthode take() prend le verrou/gaurds le noeud de queue avant la file d'attente de file d'attente. Donc, aucun thread ne prendra le même nœud de la queue. Dans le cas de zookeeper, tout le processus observant le nœud racine de la file d'attente sera averti et tous pourront saisir le même ensemble de nœuds et commencer à traiter les mêmes nœuds. –

+0

@sbridges Alors, comment puis-je appeler cela une file d'attente distribuée alors. Je parle de la recette du consommateur producteur de Zookeeper. http://zookeeper.apache.org/doc/r3.4.1/zookeeperTutorial.html#sc_producerConsumerQueues –

Répondre