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

最佳答案

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

  • 在Spring XML文件中配置TcpDiscoveryKubernetesIpFinder(请参阅https://apacheignite.readme.io/docs/kubernetes-ip-finder)
  • 在.NET中,将IgniteConfiguration.SpringConfigUrl设置为指向该文件

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

    关于kubernetes - 如何在Apache Ignite .Net中使用TcpDiscoveryKubernetesIpFinder,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55388489/

    10-15 20:53