2017-10-19 5 views
1

J'évalue Hazelcast IMDG en vue de l'utiliser pour réduire le nombre de goulots de la base de données. Notre application fonctionne sur un certain nombre de nœuds traitant des données en parallèle à partir d'une base de données située au milieu.File d'attente de blocage prioritaire dans Hazelcast

Nous utilisons une table de sémaphore pour distribuer le travail et c'est ce que nous envisageons de remplacer par une file d'attente de blocage de la Noisette.

Cependant certains messages à traiter ont une priorité plus élevée que d'autres et c'est là que j'ai commencé à avoir des doutes car il semble que Hazelcast n'ait pas un équivalent de java.util.concurrent.PriorityBlockingQueue.

Ma première question est de savoir s'il existe un moyen d'atteindre cet objectif avec Hazelcast. Ma deuxième question est de savoir s'il existe d'autres grilles de données IMDG faciles à configurer et à intégrer dans une application existante qui le permettrait.

Merci d'avance pour vos contributions.

+0

Hazelcast ne le fournit pas actuellement, vous devez le construire vous-même. Mais ce n'est pas difficile si vous utilisez le SPI du programmeur. PM moi si vous avez besoin de détails –

+0

Je ne sais pas comment vous PM. Mais pourquoi ne pas fournir ici votre solution/vos idées pour que tous ceux qui sont intéressés en profitent. J'ai quelques idées moi-même sur l'emballage d'un 'IMap >' mais étant nouveau pour IMDG je préférerais une expertise de quelqu'un avec plus d'expérience. – Julian

+1

Bonne idée. Donne-moi quelques jours pour l'écrire. –

Répondre

1

Est-ce que ce https://github.com/hazelcast/hazelcast-code-samples/tree/master/spi/priority-queue répond à vos besoins?

C'est un exemple complet - montre comment on peut étendre Hazelcast pour ajouter la file d'attente prioritaire. A besoin d'un peu de peaufinage pour en faire une qualité de production, et certains tests unitaires ne vont pas mal tourner.

+0

Beaucoup à lire et à comprendre, mais il semble que vous ayez mis beaucoup d'effort dedans. – Julian

+0

Merci beaucoup! C'est très utile –