Проблема в том, что я не смог подключиться к узлам scylla из моего приложения на python. Нужно ли мне изменять какие-либо свойства scylla.yaml?

#docker #scylla

#докер #scylla

Вопрос:

Я только начал изучать ScyllaDB для использования в нашем приложении. Я мог бы развернуть scylla в моем локальном докере. Проблема в том, что я не смог подключиться ни к одному из них из своего приложения на python. Нужно ли мне изменять какие-либо свойства scylla.yaml?

 $ docker exec -it scylla1 nodetool status
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address     Load       Tokens       Owns    Host ID                               Rack
UN  172.17.0.3  148.85 KB  256          ?       a93f8715-ff4c-43f4-8ee3-f28f936aa842  rack1
UN  172.17.0.2  158.58 KB  256          ?       c34446ca-4b11-48a6-b329-db73fd22e059  rack1
UN  172.17.0.4  146.81 KB  256          ?       4b13b043-3422-4589-b829-c26a48e7fb6e  rack1
  

Приложение на Python:

 class App:
    def __init__(self):
        self.cluster = Cluster(contact_points=["scylla1", "scylla2", "scylla3"])
        # self.cluster = Cluster(contact_points=["172.17.0.2", "172.17.0.3", "172.17.0.4"])
        self.session = self.cluster.connect(keyspace="catalog")
        self.session.default_consistency_level = ConsistencyLevel.QUORUM



if __name__ == "__main__":
    app = App()
  

Комментарии:

1. Похоже на проблемы с сетью Docker. Попробуйте использовать IP-адреса, а не имена экземпляров docker.

2. university.scylladb.com/courses/scylla-essentials-overview это хороший ресурс для начала работы и включает в себя настройку локального Docker под управлением Scylla. Более подробные разделы о Docker и производительности находятся по адресу docs.scylladb.com/operating-scylla/procedures/tips /…

Ответ №1:

Вероятно, это потому, что вы запускаете контейнер без сопоставления портов. Добавьте -p 9042:9042, и вы сможете получить к нему доступ. Всегда проверяйте с помощью telnet или cqlsh