首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在2台机器JVM之间使用Ignite集群的集群vertx事件总线

问在2台机器JVM之间使用Ignite集群的集群vertx事件总线
EN

Stack Overflow用户
提问于 2016-12-02 12:34:58
回答 1查看 914关注 0票数 3

我正试图在Ignite集群管理器中使用集群事件总线,集群vertx本身运行良好,集群vertx web也很好,现在我正在2 apache的集群中与集群事件总线进行斗争,在两台不同的机器上点燃JVMs。

我知道以下几点:

1-我们在文档中看到Ignite集群为集群Vertx执行以下操作:集群管理器不处理节点间事件总线传输,这是由Vert.x与TCP连接直接完成的。

2-现在的问题是如何正确处理两台不同机器之间的集群vertx事件总线,集群事件总线需要知道公共集群主机和公共集群端口,所以从附加的配置中,您能告诉我们如何知道公共集群主机,以及每台机器每个节点的端口,这样我们就可以在Ignite集群上为集群vertx事件总线配置相同的端口了吗?

在这两台机器之间没有防火墙或VPN,这两台机器之间的网络是开放的,但事件总线无法正确地在两台机器之间建立TCP连接,因为我无法看到消息在两台机器之间运行,而且超时时间很长:

我们的集群配置如下:

代码语言:javascript
复制
<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连接正常工作?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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())。

只有在容器中使用时,才应提供公共群集主机和公共群集端口。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40932390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档