Я пытаюсь создать кластер с одним центром данных на данный момент.
Каждый из них должен хранить одну и ту же дату в случае, если один из них перестанет работать, кластер должен работать вместе.
Я успешно создаю 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, потому что мне придется проверить, какой узел в настоящее время виден.
По моему мнению, это должно решить проблему с невозможностью получить / поместить данные в кластер всякий раз, когда первый узел выключен.Или есть лучшее решение для достижения этой цели?