En esta sección, se proporcionan lineamientos generales para el escalamiento de las operaciones de Cassandra haciendo que Cassandra en Apigee Edge para nube privada reconozca el bastidor.
Para obtener más información sobre por qué es importante que tu anillo de Cassandra tenga en cuenta el bastidor, consulta los siguientes recursos:
- Replicación (documentación de Cassandra)
- Arquitectura de Cassandra y estrategia de factor de replicación
¿Qué es un bastidor?
Un bastidor de Cassandra es una agrupación lógica de nodos de Cassandra dentro del anillo. Cassandra usa bastidores para garantizar que las réplicas se distribuyan entre diferentes grupos lógicos. Como resultado, las operaciones se envían no solo a un nodo, sino a varios, cada uno en un bastidor independiente, lo que proporciona una mayor tolerancia a errores y disponibilidad.
En los ejemplos de esta sección, se usan tres bastidores de Cassandra, que es la cantidad de bastidores que admite Apigee en las topologías de producción.
La instalación predeterminada de Cassandra en Apigee Edge para nube privada supone un solo bastidor lógico y coloca todos los nodos en un centro de datos dentro de él. Aunque esta configuración es fácil de instalar y administrar, es susceptible a fallas si una operación falla en uno de esos nodos.
En la siguiente imagen, se muestra la configuración predeterminada del anillo de Cassandra:
En una configuración más sólida, cada nodo se asignaría a un bastidor independiente y las operaciones también se ejecutarían en réplicas en cada uno de esos bastidores.
En la siguiente imagen, se muestra un anillo de 3 nodos. En esta imagen, se muestra el orden en el que se replican las operaciones en el anillo (en el sentido de las manecillas del reloj) y se destaca el hecho de que no hay dos nodos en el mismo bastidor:
En esta configuración, las operaciones se envían a un nodo, pero también a las réplicas de ese nodo en otros bastidores (en el sentido de las manecillas del reloj).
Agrega reconocimiento de bastidores (con 3 nodos)
Todas las topologías de instalación de producción de Apigee Edge para la nube privada tienen al menos tres nodos de Cassandra, a los que en esta sección se hace referencia como "IP1", "IP2" e "IP3". De forma predeterminada, cada uno de estos nodos se encuentra en el mismo bastidor, "ra-1".
En esta sección, se describe cómo asignar los nodos de Cassandra a bastidores independientes para que todas las operaciones se envíen a nodos de réplica en grupos lógicos independientes dentro del anillo.
Para asignar nodos de Cassandra a diferentes bastidores durante la instalación, sigue estos pasos:
- Antes de ejecutar el instalador, accede al nodo de Cassandra y abre el
siguiente archivo de configuración silenciosa para editarlo:
/opt/silent.conf
Crea el archivo si no existe y asegúrate de que el usuario "apigee" sea el propietario.
- Edita la propiedad
CASS_HOSTS, una lista de direcciones IP separadas por espacios (no entradas de DNS ni de nombre de host) que usa la siguiente sintaxis:CASS_HOSTS="IP_address:data_center_number,rack_number [...]"
El valor predeterminado es un anillo de Cassandra de tres nodos, en el que cada nodo se asigna al bastidor 1 y al centro de datos 1, como se muestra en el siguiente ejemplo:
CASS_HOSTS="IP1:1,1 IP2:1,1 IP3:1,1"
- Cambia las asignaciones de bastidores para que el nodo 2 se asigne al bastidor 2 y el nodo 3 se asigne al
bastidor 3, como se muestra en el siguiente ejemplo:
CASS_HOSTS="IP1:1,1 IP2:1,2 IP3:1,3"
Si cambias las asignaciones de bastidores, le indicas a Cassandra que cree dos agrupaciones lógicas adicionales (bastidores), que luego proporcionan réplicas que reciben todas las operaciones que recibe el primer nodo.
Para obtener más información sobre el uso de la propiedad de configuración
CASS_HOSTS, consulta la Referencia del archivo de configuración de Edge. - Guarda los cambios en el archivo de configuración y ejecuta el siguiente comando para instalar
Cassandra con la configuración actualizada:
/opt/apigee/apigee-setup/bin/setup.sh -p c -f path/to/silent/config
Por ejemplo:
/opt/apigee/apigee-setup/bin/setup.sh -p c -f /opt/silent.conf
- Repite este procedimiento para cada nodo de Cassandra en el anillo, en el orden en que se asignan los nodos
en la propiedad
CASS_HOSTS. En este caso, debes instalar Cassandra en el siguiente orden:- Nodo 1 (IP1)
- Nodo 2 (IP2)
- Nodo 3 (IP3)
Después de la instalación, debes verificar la configuración de Cassandra.
Verifica la configuración de Cassandra
Después de instalar una configuración de Cassandra con reconocimiento de bastidores, puedes verificar que los nodos estén
asignados a los diferentes bastidores con el comando nodetool status, como se muestra en el
siguiente ejemplo:
/opt/apigee/apigee-cassandra/bin/nodetool status
(Ejecuta este comando en uno de los nodos de Cassandra).
Los resultados deberían ser similares a los siguientes, en los que la columna Rack muestra los diferentes IDs de bastidor para cada nodo:
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
Si habilitaste la autenticación de JMX para Cassandra, también debes pasar tu nombre de usuario y
contraseña a nodetool. Para obtener más información, consulta
Usa nodetool para administrar nodos de clúster.
Instala un anillo de seis nodos
Para obtener redundancia adicional, puedes expandir el anillo de Cassandra a seis nodos. En este caso, asignas dos nodos a cada uno de los tres bastidores. Esta configuración requiere tres nodos adicionales: el nodo 4 (IP4), el nodo 5 (IP5) y el nodo 6 (IP6).
En la siguiente imagen, se muestra el orden en el que se replican las operaciones en el anillo (en el sentido de las manecillas del reloj) y se destaca el hecho de que, durante la replicación, no hay dos nodos adyacentes en el mismo bastidor:
En esta configuración, cada nodo tiene dos réplicas más: una en cada uno de los otros dos bastidores. Por ejemplo, el nodo 1 en el bastidor 1 tiene una réplica en el bastidor 2 y en el bastidor 3. Las operaciones enviadas al nodo 1 también se envían a las réplicas de los otros bastidores, en el sentido de las manecillas del reloj.
Para expandir un anillo de Cassandra de tres nodos a uno de seis, configura los nodos de la siguiente manera en tu archivo de configuración silenciosa:
CASS_HOSTS="IP1:1,1 IP4:1,3 IP2:1,2 IP5:1,1 IP3:1,3 IP6:1,2"
Al igual que con un anillo de tres nodos, debes instalar Cassandra en el mismo orden en el que aparecen los nodos
en la propiedad CASS_HOSTS:
- Nodo 1 (IP1)
- Nodo 4 (IP4)*
- Nodo 2 (IP2)
- Nodo 5 (IP5)
- Nodo 3 (IP3)
- Nodo 6 (IP6)
* Realiza los cambios en el archivo de configuración silenciosa antes de ejecutar la utilidad de configuración en el cuarto nodo (la segunda máquina en el orden de instalación de Cassandra).
Expandir a 12 nodos
Para aumentar aún más la tolerancia a errores y la disponibilidad, puedes aumentar la cantidad de nodos de Cassandra en el anillo de seis a doce. Esta configuración requiere seis nodos adicionales (de IP7 a IP12).
En la siguiente imagen, se muestra el orden en el que se replican las operaciones en el anillo (en el sentido de las manecillas del reloj) y se destaca el hecho de que, durante la replicación, no hay dos nodos adyacentes en el mismo bastidor:
El procedimiento para instalar un anillo de 12 nodos es similar al de instalar un anillo de tres o seis nodos:
establece CASS_HOSTS en los valores dados y ejecuta el instalador en el orden especificado.
Para expandir a un anillo de Cassandra de 12 nodos, configura los nodos de la siguiente manera en tu archivo de configuración silenciosa:
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"
Al igual que con los anillos de tres y seis nodos, debes ejecutar el instalador en los nodos en el orden en el que aparecen en el archivo de configuración:
- Nodo 1 (IP1)
- Nodo 7 (IP7)*
- Nodo 4 (IP4)
- Nodo 8 (IP8)
- Nodo 2 (IP2)
- Nodo 9 (IP9)
- Nodo 5 (IP5)
- Nodo 10 (IP10)
- Nodo 3 (IP3)
- Nodo 11 (IP11)
- Nodo 6 (IP6)
- Nodo 12 (IP12)
* Debes realizar estos cambios antes de instalar Apigee Edge para la nube privada en el séptimo nodo (la segunda máquina en el orden de instalación de Cassandra).