Не удается подключиться Apache Ignite на Azure Kuberntes из. net основного приложения - PullRequest
0 голосов
/ 15 апреля 2020

Я новичок в Ignite и Kubernetes. У меня есть веб-приложение. Net Core 3.1, которое размещено Azure Linux Служба приложений.

Я следовал инструкциям (Apache Официальный сайт Ignite Instructions) и Apache Ignite мог работать на Azure Kubernetes. Я мог бы создать образец таблицы, и действия чтения-записи работали успешно. Вот скриншот моих тестов успеха на PowerShell.

Пожалуйста, посмотрите тест успеха

Теперь я пытаюсь подключиться Apache Ignite from my. net основное веб-приложение, но я не смог его сделать. Мой код, как показано ниже. Я пытаюсь соединиться с IgniteConfiguration и SpringCfg Xml, но они оба получают ошибку.

private void Initialize()
{
    var cfg = GetIgniteConfiguration();
    _ignite = Ignition.Start(cfg);
    InitializeCaches();
}

public IgniteConfiguration GetIgniteConfiguration()
{
    var appSettingsJson = AppSettingsJson.GetAppSettings();
    var igniteNodes = appSettingsJson["AppSettings:IgniteNodes"];
    var nodeList = igniteNodes.Split(",");
    var config = new IgniteConfiguration
    {
        Logger = new IgniteLogger(),
        DiscoverySpi = new TcpDiscoverySpi
        {
            IpFinder = new TcpDiscoveryStaticIpFinder
            { 
                Endpoints = nodeList
            },
            SocketTimeout = TimeSpan.FromSeconds(5)
        },
        IncludedEventTypes = EventType.CacheAll,
        CacheConfiguration = GetCacheConfiguration()
    };
    return config;
}

Первая ошибка, которую я получаю:

Apache .Ignite.Core .Common.IgniteException HResult = 0x80131500
Сообщение = Java класс не найден (вы установили переменную среды IGNITE_HOME?): Org / apache / ignite / internal / processors / platform / PlatformIgnition
Source = Apache .Ignite.Core

Кроме того, я понятия не имею, что я собираюсь установить для IGNITE_HOME, а также имя пользователя и секрет для аутентификации.

Ответы [ 2 ]

1 голос
/ 15 апреля 2020

Решение: я наконец-то подключил Ignite к Azure Kubernetes.

Вот мой метод подключения.

public void TestConnection()
{
    var cfg = new IgniteClientConfiguration
    {
        Host = "MyHost",
        Port = 10800,
        UserName = "user",
        Password = "password"
    };

    using (IIgniteClient client = Ignition.StartClient(cfg))
    {
        var employeeCache1 = client.GetOrCreateCache<int, Employee>(
            new CacheClientConfiguration(EmployeeCacheName, typeof(Employee)));

        employeeCache1.Put(1, new Employee("Bilge Wilson", 12500, 1));
    }
}

Чтобы найти IP-адрес хоста, имя пользователя и секрет клиента, проверьте изображения ниже.

Идентификатор клиента и его секрет enter image description here

IP-адреса enter image description here

Примечание: я не знаю не нужно устанавливать любую переменную IGNITE_HOME и JAVA_HOME.

0 голосов
/ 15 апреля 2020

Самый простой способ - это загрузить Apache Зажечь двоичный дистрибутив (той же версии, что и используемая вами), разархивировать его в каталог и указать IGNITE_HOME переменную среды или IgniteConfiguration.IgniteHome Свойство конфигурации для разархивированного apache -ignite-nnn-bin / каталога абсолютного пути.

Мы поддерживаем это автоматически для Windows приложений, размещенных на хосте, но не для развертываний на основе Linux.

...