Как использовать TcpDiscoveryKubernetesIpFinder в Apache Ignite .Net - PullRequest
1 голос
/ 28 марта 2019

Я пытаюсь развернуть кластер Apache Ignite в Kubernetes. В документации предлагается использовать TcpDiscoveryKubernetesIpFinder для облегчения обнаружения узлов Ignite в среде Kubernetes. Однако я не смог найти этот класс в Apache Ignite для .Net. Это вообще перенесено в .Net? Если нет, как я могу использовать в моем сетевом приложении? Я не очень знаком с Java.

Если это невозможно, существует ли альтернативный подход для реализации обнаружения узлов в среде Kubernetes без использования TcpDiscoveryKubernetesIpFinder? Многоадресная рассылка недоступна в виртуальной сети Azure.

Диапазон доступных IP-адресов в моей подсети Kubernetes составляет более 1000 адресов, поэтому использование TcpDiscoveryStaticIpFinder не будет очень эффективным. Я попытался уменьшить FailureDetectionTimeout до 1 секунды на моем локальном ПК, чтобы сделать его более эффективным, но Ignite генерирует группу исключений «блокировка критического потока», якобы каждый раз, когда конечная точка оказывается недоступной. Поэтому мне пришлось избавиться от FailureDetectionTimeout.

Я использую службу Azure Kubernetes и Apache Ignite 2.7 для Net. Заранее спасибо.

1 Ответ

3 голосов
/ 28 марта 2019

Вы можете объединить конфигурацию на основе Java (Spring XML) с конфигурацией .NET.

  1. Настройка TcpDiscoveryKubernetesIpFinder в Spring XML-файле (см. https://apacheignite.readme.io/docs/kubernetes-ip-finder)

  2. В .NET установите IgniteConfiguration.SpringConfigUrl, чтобы указать на этот файл

Как это работает, Ignite сначала загружает Spring XML, а затем применяет любые настраиваемые свойства конфигурации, указанные на стороне .NET.

...