#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