2010-11-22 41 views
30

Quelqu'un at-il une expérience du monde réel avec Hazelcast grille de données distribuées et produit d'exécution? Comment cela a-t-il fonctionné pour vous? Il a une API étonnamment simple et une fonctionnalité qui semble presque aussi bonne que possible pour un outil aussi simple à utiliser. J'ai fait quelques applications très simples et il semble fonctionner comme annoncé jusqu'ici. Donc, ici, je suis à la recherche du vrai «contrôle de la réalité». Je vous remercie.RealWorld HazelCast

Répondre

9

Il y a encore des questions encore à son développement,
http://code.google.com/p/hazelcast/issues/list
En général, vous pouvez choisir de lui permettre d'utiliser son propre algorithme de multidiffusion ou spécifier vos propres les IP. Nous l'avons essayé dans un environnement LAN et cela fonctionne plutôt bien. Les performances ne sont pas mauvaises, mais l'outil de surveillance n'a pas très bien fonctionné car il ne s'est pas mis à jour la plupart du temps. Si vous pouvez vivre avec les problèmes actuels, alors allez-y. Je l'utiliserais avec précaution mais c'est un excellent outil de travail à mon humble avis.

Mise à jour: Nous utilisons Hazelcast depuis quelques mois maintenant et cela fonctionne très bien. Les paramètres sont relativement faciles à configurer et, avec les nouvelles mises à jour, ils sont suffisamment complets pour personnaliser même les petites choses comme le nombre de threads autorisés dans les opérations de lecture/écriture.

0

Si vous avez des alternatives à la noisette peut-être regarder ces premiers. Nous l'avons en mode de production en cours d'exécution et il est encore tout à fait buggé, il suffit de vérifier les problèmes ouverts. Cependant, l'intégration avec Spring, Hibernate etc. est assez agréable et la configuration est vraiment simple :)

11

Nous l'utilisons depuis la version 1.8+, en utilisant principalement la fonction de verrouillage distribué. Cela fonctionne très bien, nous avons trouvé quelques solutions de contournement/bogues, mais ceux-ci ont été corrigés relativement rapidement.

Avec 1,8 million de verrous par jour, nous n'avons trouvé aucun problème jusqu'à présent.

Je recommande de commencer à utiliser la version 1.9.4.4.

7

Nous utilisons Hazelcast (1.9.4.6 maintenant) en production intégrée à un service transactionnel complexe. Il a été ajouté pour alléger les problèmes de débit de base de données. Nous avons découvert que nous devons souvent l'arrêter en mettant fin à tous les services de transaction pendant au moins une heure. Nous exécutons des clients en mode superclient car c'est la seule option qui répond même à distance à nos exigences de performance (environ 4 fois plus vite que les clients natifs). Malheureusement, l'arrêt d'un nœud superclient provoque des problèmes de cerveau et entraîne des pertes d'enregistrements. arrêt des services. Nous essayons de faire fonctionner ce produit depuis près d'un an maintenant, et nous avons même payé pour avoir 2 représentants de nids de poule. Ils ont été incapables de produire une solution, mais ils ont pu nous faire savoir que nous nous trompions probablement. À leur avis, cela devrait fonctionner mieux mais c'était à peu près un voyage gaspillé. À ce stade, nous payons plus de 6 chiffres par an en frais de licence et nous utilisons actuellement environ 5 fois plus de ressources pour maintenir la grille en vie et répondre à nos besoins de performance que nous n'utiliserions avec un pile de base de données optimisée. C'était absolument la mauvaise décision pour nous.

Ce produit nous tue. Utilisez avec prudence, avec parcimonie, et uniquement pour les services simples.

+1

Avez-vous résolu ceci? Avez-vous isolé le problème ou migré vers une autre technologie? Quels sont les frais de licence que vous avez mentionnés? Le noyau de Azelcast est libre, je pensais. –

+7

Le vieux [qu'avez-vous vu] (http://qph.is.quoracdn.net/main-qimg-2776209b9d9d72eef92d0910e8c72e13) blague – Crowie

+0

@james, étant donné que cette réponse a été donnée il ya longtemps, quelle est la situation actuelle de Noisette. Avez-vous pu résoudre vos problèmes avec les versions les plus récentes ou avez-vous travaillé avec d'autres solutions? Serait intéressant de savoir. – frewper

2

Si ma propre entreprise et mes projets comptent comme du monde réel, voici mon expérience. Je voulais me rapprocher de l'élimination du stockage externe (disque) au profit d'une "RAM" illimitée et persistante. Pour les débutants qui élimine la plomberie CRUD qui parfois atteint jusqu'à 90% du soi-disant «niveau intermédiaire». Il y a d'autres avantages.Puisque la RAM est votre «base de données», vous n'avez pas besoin de caches complexes ou de réplication de session HTTP (ce qui à son tour élimine la technique de session collante laide). Je pense que RAM est l'avenir et Hazelcast a tout pour être une base de données en mémoire: requêtes, transactions, etc. J'ai donc écrit un mini-framework qui l'extrait: pour charger des données depuis le stockage persistant (je peux tout ajouter qui peut stocker BLOBs - le plus rapide s'est avéré être MySQL). Il est trop long d'expliquer pourquoi je n'ai pas aimé le support de persistance intégré de Hazelcast. C'est plutôt générique et rudimentaire. Ils devraient l'enlever. Il n'est pas sorcier d'implémenter votre propre write-behind distribué et optimisé. Ça m'a pris une semaine. Tout allait bien jusqu'à ce que je commence les tests de performance. Les requêtes sont lentes - après toutes les optimisations que j'ai faites: index, sérialisation portable, comparateurs explicites, etc. Une simple requête "supérieure à" sur un champ indexé prend 30 secondes sur l'ensemble de 60K d'enregistrements 1K. Je crois que l'équipe de Hazelcast a fait tout ce qu'elle pouvait. Autant que je déteste le dire, les collections Java sont encore lentes par rapport aux bases de données normales super-optimisées du code C++. Il existe des projets Java open-source qui répondent à cette question. Cependant, à ce moment, la persistance de la requête est inacceptable. Il devrait être instantané sur une seule instance locale. C'est une technologie en mémoire après tout.

Je suis passé à Mongo pour la base de données, mais j'ai laissé Hazelcast pour les données d'exécution partagées - à savoir les sessions. Une fois qu'ils améliorent les performances des requêtes, je vais revenir en arrière.

+0

J'évalue Ignite (http://apacheignite.readme.io/docs/overview) maintenant. Il a les mêmes caractéristiques que Hazelcast - au moins ceux dont j'ai besoin. Je vous le ferai savoir dans une semaine. –

+1

* Une simple requête "supérieure à" sur un champ indexé prend 30 secondes sur l'ensemble de 60K d'enregistrements 1K (entrées de carte). * Ces données sont faussement irréalistes, elles doivent lever un drapeau lors de toute analyse de performance correcte. Il semble tellement horrible, que je poserais des questions comme: «Pourquoi tant de gens l'utilisent alors?"/Pourquoi y a-t-il tant de tests de performance sur le net qui traitent des latences millisecondes et des seuils de 100k par seconde? "A la fin, je commençais à questionner la validité de mon propre test. –

0

Nous utilisons Hazelcast dans notre application de commerce électronique pour nous assurer que notre inventaire est cohérent. Nous utilisons une utilisation étendue du verrouillage distribué pour nous assurer que les articles d'inventaire SKU sont modifiés de manière atomique car il y a des centaines de nœuds dans notre cluster d'applications Web qui fonctionnent simultanément sur ces éléments.

De plus, nous utilisons des cartes distribuées à des fins de mise en cache qui sont partagées entre tous les nœuds. Comme la mise à l'échelle d'un noeud dans Hazelcast est si simple et qu'elle utilise tout son cœur de processeur, elle offre un avantage supplémentaire par rapport à redis ou à tout autre framework de mise en cache.

0

Nous utilisons Hazelcast de nos 3 dernières années dans notre application de commerce électronique pour s'assurer que la disponibilité (offre & demande) est cohérente, atomique, disponible & évolutive. Nous utilisons IMap (carte distribuée) pour mettre en cache les données et le processeur d'entrée pour les opérations d'écriture & lire pour effectuer des opérations rapides en mémoire sur IMap sans avoir à vous soucier des verrous.