在使用Vert.x 時,在集群事件總線配置上,踩過幾個坑。在定位坑時,也分析了一個事件總線的實現(xiàn)方法。以下為記錄。

相關(guān)配置代碼如下:
...
VertxOptions options = new VertxOptions()
//打開事件總線集群模式
.setClustered(true)
//設(shè)置事件總線監(jiān)聽主機IP
.setClusterHost( vertx_event_bus_host );
//設(shè)置事件總線監(jiān)聽主機IP在Hazelcast中的IP。不設(shè)置默認(rèn)和setClusterHost的值相同
options.setClusterPublicHost( vertx_event_bus_host_public );
//設(shè)置事件總線監(jiān)聽端口
options.setClusterPort( vertx_event_bus_port_int );
...
如果setClusterHost不設(shè)置。默認(rèn)用localhost是不能支持集群的??恿税胩?。設(shè)置為0.0.0.0也不行。本地端口是監(jiān)聽成功,但在Hazelcast中也注冊為0.0.0.0。所以消息發(fā)送方消息也會發(fā)送失敗的。