Essayer de comprendre les limites de EventBus
dans le Vert.x
.
Il y a une instance de Vert.x qui fonctionne en mode cluster, donc plusieurs Verticles s'exécutent sur plusieurs machines physiques. Disons que nous avons 2 machines avec 10 verticles chacune.
Donc, en chiffres : 1 instance de Vert.x
en mode cluster 20 instances de Verticles (10 par machine) 2 machines, 1 Event Bus
1000 000 connexions par seconde arrivent à l'event bus, et sont renvoyées aux verticles.
Si 2 machines ne suffisent pas, je peux toujours obtenir 100 machines, mais :
D'après ce que je comprends, l'Event Bus (EB) est le point de congestion ici? Étant donné que l'EB est un "tube de communication" et parce qu'il est unique pour beaucoup, j'imagine qu'il commencera à collecter tout ce bruit de tous les événements qui lui parviennent (adresse -> service, pub-sub etc), en plus il opère entre les nœuds, cela ne va-t-il pas entraîner un surcoût de communication NET? Comment puis-je mettre l'EB à l'échelle? Devrais-je m'en préoccuper? (ou est-ce que le cluster Hazelcast
devrait prendre soin de tout cela?)
Devrais-je envisager de créer N clusters avec 1 instance de Vert.x
en mode cluster avec 10 verticles sur 100 machines?
Q : Pour poser une question simple, y a-t-il une limite à l'Event Bus
en termes de mise à l'échelle et devrais-je envisager de créer une infrastructure avec N bus pour m'assurer que mon système est correctement dimensionné?
(je n'ai pas encore fait mes tests à ce sujet..)