如何在 Apache Ignite .Net 中使用 TcpDiscoveryKubernetesIpFinder

How to use TcpDiscoveryKubernetesIpFinder in Apache Ignite .Net

我正在尝试在 Kubernetes 中部署 Apache Ignite 集群。该文档建议使用 TcpDiscoveryKubernetesIpFinder 来促进 Kubernetes 环境中的 Ignite 节点发现。但是,我无法在 Apache Ignite for .Net 中找到这个 class。它完全迁移到 .Net 了吗?如果没有,我如何在我的 Net 应用程序中使用?我对Java.

不是很熟悉

如果不可行,是否有另一种方法可以在不使用 TcpDiscoveryKubernetesIpFinder 的情况下在 Kubernetes 环境中实现节点发现?多播在 Azure 虚拟网络中不可用。

我的 Kubernetes 子网中的可用 IP 范围是 1000 多个地址,因此使用 TcpDiscoveryStaticIpFinder 效率不高。我试图在我的本地 PC 上将 FailureDetectionTimeout 减少到 1 秒以使其更有效率,但 Ignite 生成一堆 "critical thread blocked" 异常,据称每次发现端点不可用时。所以我不得不摆脱 FailureDetectionTimeout。

我正在使用 Azure Kubernetes 服务和 Apache Ignite 2.7 for Net。先感谢您。

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

  1. 在 Spring XML 文件中配置 TcpDiscoveryKubernetesIpFinder(参见 https://apacheignite.readme.io/docs/kubernetes-ip-finder

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

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