我正试图在Ignite集群管理器中使用集群事件总线,集群vertx本身运行良好,集群vertx web也很好,现在我正在2 apache的集群中与集群事件总线进行斗争,在两台不同的机器上点燃JVMs。
我知道以下几点:
1-我们在文档中看到Ignite集群为集群Vertx执行以下操作:集群管理器不处理节点间事件总线传输,这是由Vert.x与TCP连接直接完成的。
2-现在的问题是如何正确处理两台不同机器之间的集群vertx事件总线,集群事件总线需要知道公共集群主机和公共集群端口,所以从附加的配置中,您能告诉我们如何知道公共集群主机,以及每台机器每个节点的端口,这样我们就可以在Ignite集群上为集群vertx事件总线配置相同的端口了吗?
在这两台机器之间没有防火墙或VPN,这两台机器之间的网络是开放的,但事件总线无法正确地在两台机器之间建立TCP连接,因为我无法看到消息在两台机器之间运行,而且超时时间很长:
我们的集群配置如下:
<property name="discoverySpi">
<bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
<property name="localPort" value="49500"/>
<property name="localPortRange" value="20"/>
<property name="ipFinder">
<bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
<property name="addresses">
<list>
<value>IP1{machine one IP}:49500..49520</value>
<value>IP2{machine two IP}:49500..49520</value>
</list>
</property>
</bean>
</property>
</bean>
</property>并正确地将使用者地址注册填充到所有节点。
那么,如何正确配置集群事件总线集群主机和端口,以使跨机TCP连接正常工作?
发布于 2016-12-02 13:43:09
在事件总线通信中,Vert.x不使用任何Ignite配置设置。Vert.x所做的唯一事情就是将主题和订阅者存储在集群管理器中(在您的例子中是Ignite集群)。您应该相应地将Vert.x事件总线配置为文档(公共汽车):
事件总线配置需要在所有集群节点中保持一致。
EventBusOptions还允许您指定事件总线是否是集群的、端口和主机,就像对setClustered、getClusterHost和getClusterPort一样。
在Vert.x集群启动之前,无法获得Ignite节点地址。但是您应该在启动集群Vert.x实例之前提供Vert.x集群主机和端口设置(请参阅VertxOptions.setClusterHost()和VertxOptions.setClusterPort())。
只有在容器中使用时,才应提供公共群集主机和公共群集端口。
https://stackoverflow.com/questions/40932390
复制相似问题