2017-05-11 1 views
2

Je crée un cluster d'applications qui s'exécutent sur mon serveur. J'utilise Hazelcast-cluster en combinaison avec VertX en Java. maintenant je voudrais étendre le vertx eventbus dans une application NodeJs fonctionnant sur le même serveur.Comment se connecter à un eventbus vertx en utilisant hazelcast dans le noeud

Hazelcast est en cours d'exécution dans le noeud et la connexion correctement avec les membres de Hazelcast en cours d'exécution sur la machine virtuelle Java

var HazelcastClient = require('hazelcast-client').Client; 
var Config = require('hazelcast-client').Config; 
var config = new Config.ClientConfig(); 
config.networkConfig.addresses = [{host: '127.0.0.1', port: '5701'}]; 
var map = {}; 
HazelcastClient.newHazelcastClient(config) 
    .then(function (hazelcastClient) { 
     map = hazelcastClient.getMap("persons"); 
    }); 
}); 

quelqu'un peut me aider avec la partie EventBus?!?!

Merci

Répondre

0

Vous ne pouvez pas utiliser le client Hazelcast nœud pour connecter une application de nœud avec un cluster vert.x. Vous devez configurer un pont de bus d'événement en utilisant le client Bridge dans votre application Node. Voir le EventBus Bridge - Node.JS loader dans le rapport des exemples.

0

Après une longue recherche, j'ai trouvé la réponse à mon problème: je devais lâcher le noeud et lancer mon application javascript dans une machine virtuelle Java fournie par VertX lui-même. Maintenant, je peux regrouper ma demande de JS avec une application JAVA et utiliser le EventBus natif (sans pont)

Pour toute personne qui vient le long de la même situation, voici mon code de test:

VertX-server.js:

var Vertx = require("vertx-js/vertx"); 
var options = {}; 
Vertx.clusteredVertx(options, function (res, res_err) { 
    if (res_err == null) { 
     var vertx = res; 
     var eventBus = vertx.eventBus(); 
     console.log("We now have a clustered event bus: " + eventBus); 

     eventBus.consumer("system", function (message) { 
      console.log("I have received a system message: " + JSON.stringify(message.body())); 
      message.reply("ok from javascript"); 
     }); 

     eventBus.publish("system", "hoi van Javascript-node"); 

    } else { 
     console.log("Failed: " + res_err); 
    } 
}); 

à installer les paquets nécessaires: NPM installer vertx3 plein

pour exécuter l'application: ./node_modules/.bin/vertx exécuter VertX-server.js -Cl uster