Как настроить центр обработки данных Кассандры в случае, когда семя отключено? - PullRequest
0 голосов
/ 02 мая 2019

Я пытаюсь создать кластер с одним центром данных на данный момент.

Каждый из них должен хранить одну и ту же дату в случае, если один из них перестанет работать, кластер должен работать вместе.

Я успешно создаю 2 узла, но ...

У них нет одинаковой даты, они просто делят ее между ними.Я прочитал это с помощью команды:

docker exec -ti cas1 nodetool status

и собственный ярлык около 45/55.Я хотел бы иметь 100 на каждого.Что предотвратит потерю данных, когда один из узлов перестанет работать.

CREATE KEYSPACE mykeyspace
WITH replication = {
    'class' : 'NetworkTopologyStrategy',
    'datacenter1' : 2
};

Вот мои команды, которые я использую для запуска cassandra:

Первый узел в datacener1

docker run -e DS_LICENSE=accept -e CASSANDRA_CLUSTER_NAME=AAIPCluster -e CASSANDRA_ENDPOINT_SNITCH=GossipingPropertyFileSnitch -e CASSANDRA_DC=datacenter1 -p 9042:9042 --name cassandra --memory 2g -d cassandra

Второй узел в центре обработки данных также

docker run --name cassandra2 -e CASSANDRA_SEEDS="$(docker inspect --format='{{ .NetworkSettings.IPAddress }}' cassandra)" -e CASSANDRA_CLUSTER_NAME=AIIPCluster -e CASSANDRA_ENDPOINT_SNITCH=GossipingPropertyFileSnitch -e CASSANDRA_DC=datacenter1 -d cassandra

Они запущены и работают в одном центре обработки данных (datacenter1).

Я понимаю, что только первый узел доступен через порт 9042, ноЕсть ли способ выставить весь центр данных / кластер на одном порту?

Я мог бы выставить каждый узел на разных портах, но может быть трудно определить соединение с остальными API, потому что мне придется проверить, какой узел в настоящее время виден.

По моему мнению, это должно решить проблему с невозможностью получить / поместить данные в кластер всякий раз, когда первый узел выключен.Или есть лучшее решение для достижения этой цели?

1 Ответ

0 голосов
/ 02 мая 2019

Когда вы используете Docker, вы можете подключиться к этим экземплярам через сеть Docker, поэтому, если вы подключаетесь к localhost и порту 9042, драйвер получит полную топологию кластера и будет использовать объявленные сетевые адреса. самими узлами, и если вы не сделали ничего конкретного для их настройки, то будут использоваться адреса из сети Docker, а не localhost.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...