如何使用节点中的hazelcast连接到一个vertx事件总线

我正在创build一个在我的服务器上运行的应用程序集群。 我使用Hazelcast-cluster与Java中的VertX结合使用。 现在我将lite命令将vertx事件总线扩展到在同一台服务器上运行的NodeJs应用程序。

Hazelcast正在节点中运行,并正确连接运行在JVM上的hazelcast成员

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"); }); }); 

有人可以帮助我与事件总线的一部分?!?!

谢谢

您不能使用Hazelcast节点客户端将节点应用程序连接到Vert.x群集。 您需要在Node应用程序中使用桥客户端来设置事件总线桥。

请参阅示例回购中的EventBus Bridge – Node.JS加载器 。

经过一番漫长的search,我find了我的问题的答案:我不得不放开节点,并在由VertX本身提供的JVM中运行我的JavaScript应用程序。 现在我可以将我的JS应用程序与JAVA应用程序集成在一起,并使用本地事件总线(无需桥接)

对于任何来自相同的情况,这里是我的testing代码:

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); } }); 

安装所需的软件包:npm install vertx3-full

运行应用程序:./node_modules/.bin/vertx运行vertx-server.js -cluster

    Interesting Posts