В этом разделе представлены общие рекомендации по масштабированию операций Cassandra путем обеспечения поддержки Cassandra на Apigee Edge для стойки частного облака.
Дополнительную информацию о том, почему важно информировать о стойке для колец Cassandra, см. в следующих ресурсах:
- Репликация (документация Cassandra)
- Архитектура Cassandra и стратегия фактора репликации
Что такое стойка?
Стойка Cassandra — это логическая группа узлов Cassandra внутри кольца. Cassandra использует стойки, чтобы обеспечить распределение реплик по различным логическим группам. В результате операции передаются не на один, а на несколько узлов, каждый из которых находится в отдельной стойке, что обеспечивает большую отказоустойчивость и доступность.
В примерах в этом разделе используются три стойки Cassandra — количество стоек, поддерживаемых Apigee в производственных топологиях.
Установка Cassandra по умолчанию в Apigee Edge для частного облака предполагает наличие одной логической стойки и размещение в ней всех узлов центра обработки данных. Хотя эта конфигурация проста в установке и управлении, она может привести к сбою в случае сбоя операции на одном из этих узлов.
На следующем изображении показана конфигурация кольца Cassandra по умолчанию:
В более надежной конфигурации каждый узел будет закреплен за отдельной стойкой, и операции также будут выполняться с репликами на каждой из этих стоек.
На следующем изображении показано кольцо из 3 узлов. На этом изображении показан порядок репликации операций по кольцу (по часовой стрелке) и подчеркивается тот факт, что никакие два узла не находятся в одной стойке:
В этой конфигурации операции отправляются не только на узел, но и на реплики этого узла на других стойках (по часовой стрелке).
Добавить информацию о стойке (с 3 узлами)
Все топологии производственной установки Apigee Edge для частного облака имеют как минимум три узла Cassandra, которые в этом разделе называются «IP1», «IP2» и «IP3». По умолчанию каждый из этих узлов находится в одной стойке «ра-1».
В этом разделе описывается, как назначить узлы Cassandra отдельным стойкам, чтобы все операции отправлялись на узлы реплик в отдельных логических группах внутри кольца.
Чтобы назначить узлы Cassandra различным стойкам во время установки:
- Прежде чем запускать установщик, войдите в узел Cassandra и откройте для редактирования следующий файл автоматической конфигурации :
/opt/silent.conf
Создайте файл, если он не существует, и обязательно назначьте его владельцем пользователя «apigee».
- Отредактируйте свойство
CASS_HOSTS
— список IP-адресов, разделенных пробелами (не записи DNS или имен хостов), который использует следующий синтаксис:CASS_HOSTS="IP_address:data_center_number,rack_number [...]"
Значением по умолчанию является кольцо Cassandra с тремя узлами, где каждый узел назначен стойке 1 и центру обработки данных 1, как показано в следующем примере:
CASS_HOSTS="IP1:1,1 IP2:1,1 IP3:1,1"
- Измените назначения стоек так, чтобы узел 2 был назначен стойке 2, а узел 3 — стойке 3, как показано в следующем примере:
CASS_HOSTS="IP1:1,1 IP2:1,2 IP3:1,3"
Изменяя назначения стоек, вы даете Cassandra указание создать две дополнительные логические группы (стойки), которые затем предоставляют реплики, получающие все операции, полученные первым узлом.
Дополнительные сведения об использовании свойства конфигурации
CASS_HOSTS
см. в разделе Справочник по файлам конфигурации Edge . - Сохраните изменения в файле конфигурации и выполните следующую команду, чтобы установить Cassandra с обновленной конфигурацией:
/opt/apigee/apigee-setup/bin/setup.sh -p c -f path/to/silent/config
Например:
/opt/apigee/apigee-setup/bin/setup.sh -p c -f /opt/silent.conf
- Повторите эту процедуру для каждого узла Cassandra в кольце в том порядке, в котором узлы назначены в свойстве
CASS_HOSTS
. В этом случае необходимо установить Cassandra в следующем порядке:- Узел 1 (IP1)
- Узел 2 (IP2)
- Узел 3 (IP3)
После установки вам следует проверить конфигурацию Cassandra .
Проверьте конфигурацию Кассандры
После установки конфигурации Cassandra с поддержкой стойки вы можете проверить, что узлы назначены разным стойкам, используя команду nodetool status
, как показано в следующем примере:
/opt/apigee/apigee-cassandra/bin/nodetool status
(Вы выполняете эту команду на одном из узлов Cassandra.)
Результаты должны выглядеть примерно так, как показано ниже, где в столбце Стойка показаны разные идентификаторы стойки для каждого узла:
Datacenter: dc-1 ======================== Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns Host ID Rack UN IP1 737 MB 256 ? 554d4498-e683-4a53-b0a5-e37a9731bc5c ra-1 UN IP2 744 MB 256 ? cf8b7abf-5c5c-4361-9c2f-59e988d52da3 ra-2 UN IP3 723 MB 256 ? 48e0384d-738f-4589-aa3a-08dc5bd5a736 ra-3
Если вы включили аутентификацию JMX для Cassandra, вы также должны передать свое имя пользователя и пароль в nodetool
. Дополнительные сведения см. в разделе Использование nodetool для управления узлами кластера .
Установите шестиузловое кольцо
Для дополнительной избыточности вы можете расширить кольцо Cassandra до шести узлов. В этом случае вы назначаете по два узла каждой из трех стоек. Для этой конфигурации требуются дополнительные три узла: узел 4 (IP4), узел 5 (IP5) и узел 6 (IP6).
На следующем изображении показан порядок, в котором операции реплицируются по кольцу (по часовой стрелке), и подчеркивается тот факт, что во время репликации никакие два соседних узла не находятся в одной стойке:
В этой конфигурации каждый узел имеет еще две реплики: по одной в каждой из двух других стоек. Например, узел 1 в стойке 1 имеет реплики в стойках 2 и 3. Операции, отправленные на узел 1, также передаются репликам в других стойках по часовой стрелке.
Чтобы расширить кольцо Cassandra с тремя узлами до кольца Cassandra с шестью узлами, настройте узлы в файле автоматической конфигурации следующим образом:
CASS_HOSTS="IP1:1,1 IP4:1,3 IP2:1,2 IP5:1,1 IP3:1,3 IP6:1,2"
Как и в случае с кольцом из трех узлов, вы должны установить Cassandra в том же порядке, в котором узлы указаны в свойстве CASS_HOSTS
:
- Узел 1 (IP1)
- Узел 4 (IP4)*
- Узел 2 (IP2)
- Узел 5 (IP5)
- Узел 3 (IP3)
- Узел 6 (IP6)
* Внесите изменения в файл автоматической конфигурации перед запуском утилиты настройки на четвертом узле (второй компьютер в порядке установки Cassandra).
Расширить до 12 узлов
Чтобы еще больше повысить отказоустойчивость и доступность, вы можете увеличить количество узлов Cassandra в кольце с шести до 12. Для этой конфигурации требуются дополнительные шесть узлов (от IP7 до IP12).
На следующем изображении показан порядок, в котором операции реплицируются по кольцу (по часовой стрелке), и подчеркивается тот факт, что во время репликации никакие два соседних узла не находятся в одной стойке:
Процедура установки кольца из 12 узлов аналогична установке кольца из трех или шести узлов: установите для CASS_HOSTS
заданные значения и запустите программу установки в указанном порядке.
Чтобы расширить кольцо Cassandra до 12 узлов, настройте узлы в файле автоматической конфигурации следующим образом:
CASS_HOSTS="IP1:1,1 IP7:1,2 IP4:1,3 IP8:1,1 IP2:1,2 IP9:1,3 IP5:1,1 IP10:1,2 IP3:1,3 IP11:1,1 IP6:1,2 IP12:1,3"
Как и в случае с трех- и шестиузловым кольцами, необходимо запускать установщик на узлах в том порядке, в котором узлы появляются в файле конфигурации:
- Узел 1 (IP1)
- Узел 7 (IP7)*
- Узел 4 (IP4)
- Узел 8 (IP8)
- Узел 2 (IP2)
- Узел 9 (IP9)
- Узел 5 (IP5)
- Узел 10 (IP10)
- Узел 3 (IP3)
- Узел 11 (IP11)
- Узел 6 (IP6)
- Узел 12 (IP12)
* Вы должны внести эти изменения перед установкой Apigee Edge для частного облака на 7-м узле (второй компьютер в порядке установки Cassandra).