如何在vertx中使用eventbus消息?

时间:2014-12-12 09:10:40

标签: message-queue event-bus vert.x

我按照sample中的说明操作并运行:

vertx run eventbus_pointtopoint/receiver.rb -cluster
vertx run eventbus_pointtopoint/sender.rb -cluster

然后我才得到:

➜  ruby  vertx run eventbus_pointtopoint/receiver.rb -cluster
Starting clustering...
No cluster-host specified so using address 192.168.56.1
Succeeded in deploying verticle

➜  ruby  vertx run eventbus_pointtopoint/sender.rb -cluster
Starting clustering...
No cluster-host specified so using address 192.168.56.1
Succeeded in deploying verticle

但没有收到任何消息。我做错了什么?

1 个答案:

答案 0 :(得分:0)

如果您只是想了解事件总线消息的工作原理,您可以将两段代码移动到一个文件中并运行它。

require "vertx"
include Vertx

EventBus.register_handler('ping-address') do |msg|
  puts "Received message: #{msg.body}"
  # Now reply to it
  msg.reply('pong!')
end

Vertx::set_periodic(1000) do
  EventBus.send('ping-address', 'ping') do |reply|
    puts "Received reply: #{reply.body}"
  end
end

运行群集

如果要运行通过群集指定的示例,可能需要更改cluster.xml配置文件,它位于vertx安装的conf文件夹中。我不得不改变两行,先改变

<multicast enabled="true">

为假:

<multicast enabled="false">

然后改变

<tcp-ip enabled="false">

到真

<tcp-ip enabled="true">

并确保接口标记具有正确的IP地址。然后你应该运行上面指定的命令。