我们在机器上有一个主动防火墙和多个ignite服务器以提高可用性,但同时我们不能保持所有端口都打开。我阅读了多篇关于apacheignite用户的博客和电子邮件[1],以了解在ignite节点之间使用哪些端口来建立和保持连接。
我的点火Spring配置
@Bean
public Ignite igniteInstance(JdbcIpFinderDialect ipFinderDialect, DataSource dataSource) {
IgniteConfiguration cfg = new IgniteConfiguration();
cfg.setGridLogger(new Slf4jLogger());
cfg.setMetricsLogFrequency(0);
TcpDiscoverySpi discoSpi = new TcpDiscoverySpi()
.setIpFinder(new TcpDiscoveryJdbcIpFinder(ipFinderDialect).setDataSource(dataSource)
.setInitSchema(initialiseIgniteSchema))
.setLocalPort(51000)
.setLocalPortRange(100);
cfg.setDiscoverySpi(discoSpi);
cfg.setCacheConfiguration(cacheConfigurations.toArray(new CacheConfiguration[0]));
cfg.setFailureHandler(igniteFailureHandler);
return Ignition.start(cfg);
}
这样我就指定了发现端口[51000]和范围[100],但是当我运行 netstat
要查看两个节点上的连接,但注意到随机临时端口范围,这些端口是什么[20353],[59856],是否缺少设置范围的可配置选项? [user@machine ~]$ netstat -aon | grep 51000 | grep ES
headerh2h2tcp00...host1:510000.0.0.0:*listenoff(0.00/0/0)tcp00...host1:59856...host2:51000已建立Off(0.00/0/0)tcp00..host1:51000..host2:20352已建立KeepAlive(6007.95/0)
热释光;博士
我有2个ignite服务器在系统中共享一个缓存
由于安全实施,我们必须关闭所有端口,除非使用
ignite服务器在随机临时端口范围内建立连接
有没有办法限制这个范围?
1条答案
按热度按时间0ve6wy6x1#
您可以更改ignite用来监听的端口。您已经更改了发现端口。至少,您还需要更改通信spi端口(默认情况下为47100),并可能禁用jmx(从
-nojmx
标志)。使用默认实现,无法配置传出连接的端口。这是一个非常不寻常的要求。您可以构建自己的绑定到特定端口(而不是零端口)的发现spi,这需要构建默认实现并重写
TcpDiscoverySpi#createSocket()
方法。