Je me spécialise dans une marque spécifique de MOM donc je ne peux pas fournir une réponse complète. Cependant, après 3 jours, il n'y a pas d'autres réponses, donc je pense que j'aurais au moins un coup de poignard à ce sujet.
Quels sont ceux qui existent et lesquels ont les caractéristiques les plus uniques? [Multicast, p2p, structures de message alternatives, détection de périphérique, etc]
Je ne suis pas sûr de ce que vous entendez par "détection de périphérique" mais WebSphere MQ a le reste des éléments mentionnés. Il existe également une API REST, un fichier à message, un message sur fichier, une fonctionnalité de métadonnées de message riche définie par l'utilisateur, une validation en une phase, une validation en deux phases, le tunneling via HTTPS, le cryptage au repos, les API dans une douzaine de langues, prise en charge de dizaines de plates-formes, basculement automatique et reconnexion, filtrage des messages par courtier, etc.
Et c'est juste le produit que je connais. L'espace de messagerie est assez riche avec des produits concurrents et certains sont spécialement conçus avec un focus étroit et d'autres sont des solutions polyvalentes. Certains sont légers en mémoire et d'autres sont assez robustes. Désolé, je ne peux pas fournir une analyse comparative détaillée, cependant. J'espérais plutôt que quelqu'un le ferait, ou un lien vers un bon article de synthèse récent.
De plus, est-ce que l'un de ces systèmes est suffisamment extensible pour une utilisation intensive sur une grille ou de grandes quantités de données?
Oh oui. Les offres vont de ultra-sûr (messages durcis sur le disque & répliqué alors que l'application bloque) à ultra-rapide (messages pulvérisés sur multidiffusion à un rythme de milliers ou de dizaines de milliers par seconde). J'ai des clients qui déplacent des milliers de messages par seconde sur quelques nœuds et d'autres qui déplacent des centaines de milliers de messages par seconde sur un grand réseau.
J'aimerais recommander ma propre bibliothèque, mais elle n'est pas distribuée (bien qu'un petit correctif puisse le faire), mais cela serait un peu utile (et cela ne fonctionne que sur osx et avec le compilateur clang). Mais vous voudrez peut-être regarder des langues comme erlang. – jer