我正在尝试在Kubernetes中部署Apache Ignite集群。该文档建议使用TcpDiscoveryKubernetesIpFinder来促进在Kubernetes环境中发现Ignite节点。但是,我在.Net的Apache Ignite中找不到此类。它是否完全迁移到.Net?如果没有,如何在我的Net应用程序中使用?我对Java不太熟悉。
如果不可能,是否有另一种方法可以在Kubernetes环境中实现节点发现而不使用TcpDiscoveryKubernetesIpFinder?组播在Azure虚拟网络中不可用。
我的Kubernetes子网中的可用IP范围是1000多个地址,因此使用TcpDiscoveryStaticIpFinder效率不是很高。我试图将本地PC上的FailureDetectionTimeout降低到1秒以提高效率,但是据称,每次发现端点不可用时,Ignite都会生成一堆“关键线程被阻止”异常。所以我不得不摆脱FailureDetectionTimeout。
我正在使用Azure Kubernetes Service和Apache Ignite 2.7 for Net。先感谢您。
答案 0 :(得分:3)
您可以将基于Java的(Spring XML)配置与.NET配置结合在一起。
在Spring XML文件中配置 <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<overwrite>true</overwrite>
<encoding>UTF-8</encoding>
</configuration>
<executions>
<execution>
<id>resource_filter</id>
<phase>generate-resources</phase>
<goals>
<goal>resources</goal>
</goals>
</execution>
</executions>
</plugin>
(请参见https://apacheignite.readme.io/docs/kubernetes-ip-finder)
在.NET中,设置TcpDiscoveryKubernetesIpFinder
指向该文件
工作方式是Ignite先加载Spring XML,然后应用.NET端指定的所有自定义配置属性。