如何在Apache Ignite .Net中使用TcpDiscoveryKubernetesIpFinder

时间:2019-03-28 00:33:20

标签: kubernetes ignite azure-kubernetes

我正在尝试在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。先感谢您。

1 个答案:

答案 0 :(得分:3)

您可以将基于Java的(Spring XML)配置与.NET配置结合在一起。

  1. 在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

  2. 在.NET中,设置TcpDiscoveryKubernetesIpFinder指向该文件

工作方式是Ignite先加载Spring XML,然后应用.NET端指定的所有自定义配置属性。