Невозможно подключиться к базе данных aersopike через python - не удалось подключиться к кластеру с помощью [('127.0.0.1', 3000)]

У меня есть Aerospike, работающий через Vagrant в виртуальном ящике, который работает в системе Windows.

У меня есть приложение Java Spring Boot, работающее в Windows, которое может общаться с базой данных aerospike на хосте 127.0.0.1 и порте 3000.

Вот мой файл свойств -

prepaid.aerospike.namespace=hello
prepaid.aerospike.hosts.count=1

prepaid.aerospike.hostname1=127.0.0.1
prepaid.aerospike.port1=3000

prepaid.aerospike.sequence.namespace=hello1

А вот и файл AerospikeConfiguration -

package com.citruspay.common.prepaid.aerospike;

import java.util.Properties;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import com.aerospike.client.AerospikeException;
import com.aerospike.client.Host;
import com.spikeify.Spikeify;

@Configuration
public class AerospikeConfiguration {

    @Value("${prepaid.aerospike.namespace}")
    private String namespace;

    @Value("${prepaid.aerospike.hosts.count}")
    private String aerospikeHostCount;

    @Value("${prepaid.um.aerospike.cache.namespace}")
    private String aerospikeUMCacheNamespace;

    @Value("${prepaid.aerospike.history.namespace}")
    private String aerospikeHistoryNamespace;

    @Autowired
    @Qualifier("configProperties")
    Properties config;

    public Host[] aerospikeHosts() {
        Integer hostsCount = Integer.parseInt(aerospikeHostCount);
        Host[] hosts = new Host[hostsCount];
        for (int i = 1; i <= hostsCount; i++) {
            hosts[i - 1] = new Host(
                    config.getProperty("prepaid.aerospike.hostname" + i),
                    Integer.parseInt(
                            config.getProperty("prepaid.aerospike.port" + i)));
        }
        return hosts;
    }

    @Bean
    public Spikeify spikeify() throws AerospikeException {
        SpikeifyService.globalConfig(namespace, aerospikeHosts());
        return SpikeifyService.sfy();
    }

    public String getNamespace() {
        return namespace;
    }

}

Проблема

У меня есть питон для Windows, работающий в моей системе.

Я пробовал запустить точно такой же пример, приведенный в https://www.aerospike.com/docs/client/python

При запуске файла python через python aerospike.py я получаю -

failed to connect to the cluster with [('127.0.0.1', 3000)]

Обновлять

Сетевой раздел из aerospike.conf-

network {
        service {
                address any
                port 3000
        }

        heartbeat {
                mode mesh
                port 3002 # Heartbeat port for this node.
#               address 127.0.0.1
                # List one or more other nodes, one ip-address & port per line:
                #                 #               mesh-seed-address-port 10.10.10.11 3002
                #                 #               mesh-seed-address-port 10.10.10.12 3002
                #                 #               mesh-seed-address-port 10.10.10.13 3002
                #                 #               mesh-seed-address-port 10.10.10.14 3002
                #
                #                                 interval 250
                #                                                 timeout 10
                #
        }

        fabric {
                port 3001
        }

        info {
                port 3003
        }
}

К какому IP-адресу / порту привязан Aerospike? Вы используете какой-нибудь брандмауэр?

Andrew Henle 13.07.2018 16:41

Как мне это проверить? Команда tasklist показывает бродягу - Image Name PID Session Name Session# Mem Usage -> vagrant.exe 12912 Console 1 2,552 K

Sandeepan Nath 14.07.2018 09:40

Настроен ли у вас адрес доступа в файле aerospike.conf? Можете ли вы запустить службу asinfo -v в своем бродячем поле и посмотреть, какие IP-адреса объявляются клиентам.

lvolmar 16.07.2018 22:39

@lvolmar Нет, у меня не настроен адрес доступа в aerospike.conf. Вывод asinfo -v service показывает две комбинации IP-портов. Это не мой IP-адрес локального хоста. Я не уверен, где они настроены.

Sandeepan Nath 17.07.2018 08:27

Вам нужно найти файл aerospike.conf и показать его здесь. Он будет в вашем бродячем экземпляре, обычно в /etc/aerospike/aerospike.conf. Что-то в вашей конфигурации ограничивает доступ со стороны клиента. См .: aerospike.com/docs/operations/configure/network/general/…

Ronen Botzer 29.07.2018 19:17

@RonenBotzer добавил контент aerospike.conf. См. Обновление вопроса.

Sandeepan Nath 29.07.2018 20:06

Это усечено? Отсутствует раздел network. Для справки см. aerospike.com/docs/operations/configure/index.html.

Ronen Botzer 29.07.2018 20:15

@RonenBotzer, извини. Добавлен сетевой раздел.

Sandeepan Nath 29.07.2018 20:26

Выглядит нормально. Можете ли вы показать фрагмент Python, который не подключается? Я предполагаю, что и приложение Java, и скрипт Python работают на этом компьютере, а не подключаются откуда-то еще, где вам нужно будет указать IP-адрес eth0 или eth1 этой виртуальной машины.

Ronen Botzer 29.07.2018 20:38

Теперь я получаю другую ошибку, когда пытаюсь запустить новый скрипт Python - import aerospike ModuleNotFoundError: No module named 'aerospike'. Попытка установить aerospike для python не работает. Похоже, не поддерживается - обсуждение.aerospike.com/t/….

Sandeepan Nath 29.07.2018 20:49

Хорошо, в следующий раз упомяните, что такое клиентская ОС (Windows), и мы можем пропустить цепочку комментариев.

Ronen Botzer 06.08.2018 16:39
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
11
317
1

Ответы 1

Клиент Python в настоящее время не поддерживается в Windows. Вы можете попробовать собрать его с помощью Клиент C для Windows. Пожалуйста, разветвите Aerospike / Aerospike-клиент-питон и внесите изменения, если вы заставите его работать.

Другие вопросы по теме