我已经在两个主机(OpenStack云)上部署了两个Ignite 2.5.0服务器的集群。他们使用ipFinder TcpDiscoveryMulticastIpFinder相互查看(拓扑快照[ver = 14,服务器= 2,客户端= 0,CPU = 2,...)。只有一台主机具有公用IP(浮动IP),我们称其为A,另一台只有私有IP B,只能从主机A进行访问。在我的客户端(Eclipse IDE)的配置中,我将A的公共IP设置为与TcpDiscoveryVmIpFinder.addresses连接。 (在A的配置中,正确设置了addressResolver和localAddress中的公共IP和私有IP)。
向该群集发送broadcast()时,几分钟之内没有任何反应。杀死B,播放广播(在A上)。
如何从外部客户端访问群集的“专用”计算节点?我看到“路由器”的迹象(bin / igniterouter.sh,config / router / default-router.xml)-可能已被弃用?,但有关如何使用它的信息不多,或解决此问题的任何其他方法。 / p>
答案 0 :(得分:0)
点燃客户端节点是一个常规节点,但是没有存储空间(嗯,例如,如果它具有近缓存或本地缓存,则可以)。因此,像服务器节点一样,它必须能够与集群中的所有节点进行通信。 因此,您需要使整个群集可供客户端访问或使用瘦客户端:
https://apacheignite.readme.io/docs/java-thin-client
不幸的是,它还不支持计算API,只能使用缓存操作和SQL。
答案 1 :(得分:0)
不是解决方案,而是一种替代方法,可以通过以下方式在公共主机A上安装“ haproxy”:
listen l47501
bind :47501
mode tcp
server worker1 192.168.0.224:47500
listen l47101
bind :47101
mode tcp
server worker1 192.168.0.224:47100
在/etc/haproxy/haproxy.cfg中的,其中192.168.0.224是B的专用IP(名为worker1)。它将A的端口47501和47101连接到B的47500和47100。
在B的点火配置(config / default-config.xml)中,为DiscoverySpi(47500,请参见下文)和communicationSpi(47100,未显示)设置addressResolver:
<property name="discoverySpi">
<bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
<property name="localAddress" value="192.168.0.224"/>
<property name="addressResolver">
<bean class="org.apache.ignite.configuration.BasicAddressResolver">
<constructor-arg><map>
<entry key="192.168.0.224:47500" value="193.x.x.x:47501"/>
其中193.x.x.x是A的公共IP(您必须为A上的入口TCP端口47501和47101打开防火墙。)
广播“ helloworld”通过我的IDE在A和B上工作。