У меня есть два сервера для запуска Cassandra, следуя документации на веб-сайте DataStax. Моя текущая настройка должна иметьCassandra два узла с резервированием
1 узел семян (настраивается в обоих yamls)
При запуске, оба узла вверх (при тестировании с помощью nodetool), и оба, кажется, данные реплицируются правильно, но Я заметил, что когда я уничтожаю семенной узел, другой узел не разрешает клиентские соединения (ни через их API, ни путем подключения к cqlsh), что является проблемой.
Мое требование состоит в том, чтобы иметь два сервера, которые являются идеальными репликами друг друга, и в случае, если один сервер временно недоступен (из-за сбоев на диске), другой сервер может взять на себя запросы до тех пор, пока не сломается сервер онлайн.
Учитывая этот requriement, у меня есть следующие вопросы:
- Мне нужно установить оба узла, как «семенных» узлы ли?
- Как я могу убедиться, что все реплицировано на обоих серверах? Это происходит автоматически или есть какие-то настройки, которые мне нужно установить?
Большое спасибо заранее,
Я должен добавить, что с двумя узлами вы можете выполнить RF = 2, прочитать CL = 1 и записать CL = 1; однако это означает, что вы можете читать устаревшие данные до тех пор, пока они не будут реплицированы на другой узел.Это позволит вам читать и писать, если живет только один узел, но вы жертвуете согласованностью. – ashic
Большое спасибо за ваш ответ. Отличное объяснение. Один последний вопрос, если бы я решил выбрать 2 узла с Read/Write CL = 1 (я знаю, что это не очень хорошо, но у меня только 2 сервера в моем распоряжении на моем этапе бета-версии, и вы сможете добавлять больше серверов позже), мне нужно установить оба узла как «семена», чтобы в случае падения одного узла/сервера соединение все еще возможно? – kha
Семена не * это * критический. Это адрес, который вы даете клиентам, полагая, что семенные узлы будут стабильными. Клиент будет подключаться к семени и получать информацию о остальной части кластера. Затем он будет подключаться к любому узлу кластера для транзакций. Если вы не укажете семена, информация может распространяться в любом случае сплетнями. Если вы сообщите клиенту о подключении к несеянию, это не должно вызывать проблемы для настройки вашего двух узлов. Если вы помечаете как семена, если клиент подключается к одному, а он вниз, он будет подключаться к другому. Я бы обозначил их как семена. – ashic