Je suis nouveau à Java ee et je ne suis pas sûr de savoir comment mettre en œuvre une exigence particulière.Nombre énorme d'objets, sharding et java EE
J'ai besoin d'un grand ensemble (millions) d'objets qui maintiennent un tas de règles et d'état et présentent une API pour les clients. Chacun de ces objets a une longue durée de vie. Étant donné qu'il y en a tellement, nous aurons probablement besoin de les partager entre plusieurs machines virtuelles et d'utiliser RMI pour y accéder. Ma question est de savoir s'il existe une approche Java EE pour résoudre le problème de localisation d'une instance de l'objet, permettant aux clients d'obtenir une référence à l'objet sans avoir besoin de savoir sur quelle machine il se trouve.
Je suis conscient de JNDI, mais je ne suis pas sûr que l'enregistrement de chacun des objets dans un répertoire JNDI est approprié. Ai-je besoin d'écrire une bibliothèque "Locator" qui peut se rendre compte de la VM à laquelle appartient chaque objet?
Avez-vous envisagé des solutions disponibles, telles que [Terre cuite] (http://www.terracotta.org) et [Cohérence] (http://www.oracle.com/technetwork/middleware/coherence/overview/ index.html)? Ou avez-vous des exigences spécifiques/statutaires qui empêchent de telles solutions? –
@AlistairIsrael Je n'ai rien contre eux, mais ils semblent seulement aider à la distribution des données dans les objets. Le temps de calcul doit également être partagé. Ces solutions * pourraient toutefois être utiles pour la distribution du registre.OTOH quelque chose comme Hazelcast serait une solution simple pour la distribution du registre aussi. – Royce
J'ai juré que Terracotta offrait un clustering transparent qui donnait à votre application l'impression qu'elle fonctionnait sur une énorme JVM. Leur site Web ne précise pas maintenant qu'ils le font encore, ou peut-être que c'est ce que [Terracotta DSO] (http://www.terracotta.org/confluence/display/docs/Home) est tout. –