Наше приложение работает в кластере Cassandra из шести узлов с двумя центрами обработки данных.
Информация о кластере:
Версия Cassandra: 2.0.3
Snitch: GossipingPropertyFileSnith
Partitioner: Murmur3Partitioner
У каждого постоянного тока есть три узла.
У каждого постоянного тока коэффициент репликации равен 2.
Каждый узел использует num_vnodes = 256. (все виртуальные узлы)
DC1 - это постоянный ток в реальном времени (локальный постоянный ток), который в настоящее время предоставляет данные пользователям. DC2 - это просто резервный постоянный ток (удаленный постоянный ток), который не передает никаких данных пользователям. Поскольку мы планируем операции по техническому обслуживанию только в DC1, мы собираемся сделать удаленный DC DC2 для обслуживания пользователей в течение периода обслуживания.
Во время отключения весь DC1 может выйти из строя на несколько дней. После завершения обслуживания мы снова сделаем DC1 для обслуживания данных и DC2 для резервного копирования. Поэтому нам нужно иметь актуальные данные в DC1 после сбоя. Наше приложение будет обрабатывать большие объемы данных (несколько ГБ) во время простоя.
Перед отключением DC1
1) О чем (например, настройках журнала фиксации и т. Д.) Нужно позаботиться на узлах DC1.
2) О чем все (например, о настройках хэндовера и т. Д.) Нужно позаботиться в узлах DC2.
Во время отключения
3) Когда весь DC1 не работает, где будут написаны подсказки (в любом из узлов DC2?) И как обработать эти подсказки?
После включения DC1
4) Во время простоя репликация может дать сбой в узлах DC1. Как мы можем эффективно изготовить / отремонтировать DC1 с актуальными данными, используя DC2?