The Ops Community ⚙️

Nicolás Georger for SREDevOps.org

Posted on • Originally published at sredevops.org on

MySQL 8.2 es lo que todos estábamos esperando para Kubernetes con Transparent Read/Write Splitting

MySQL 8.2 es lo que todos estábamos esperando para Kubernetes con Transparent Read/Write Splitting

Oracle ha anunciado recientemente la disponibilidad general de MySQL 8.2 , que incluye soporte para división de lectura/escritura (read/write splitting). Esta característica tan esperada se introdujo en la última versión de innovación (un equivalente a "release candidate"), que ayuda a optimizar el rendimiento y la escalabilidad de la base de datos.

Read-write splitting permite a las aplicaciones dirigir de forma transparente todo el tráfico de escritura a instancias de lectura-escritura (primarias/sources) y todo el tráfico de lectura a instancias de sólo lectura, dependiendo del tipo de instancia (InnoDB Cluster o Replica Cluster).

Frederic Descamps , administrador de la comunidad MySQL, explica:

"A gran escala, distribuimos las lecturas entre las réplicas, pero esto debe gestionarse de alguna manera en la aplicación: apuntando las escrituras a un lugar y las lecturas a otro lugar. Desde MySQL 8.2, MySQL Router ahora puede identificar las lecturas y escrituras, para luego enrutarlas a instancias primarias en el caso de un clúster InnoDB, o a una fuente de replicación asincrónica para las escrituras y a instancias secundarias o réplicas para las lecturas."

Puedes realizar tu mismo una simple PoC (proof of concept/prueba de concepto), utilizando mysql-operator:

MySQL 8.2 es lo que todos estábamos esperando para Kubernetes con Transparent Read/Write Splitting
](https://github.com/mysql/mysql-operator/tree/8.2.0-2.1.1/deploy?ref=sredevops.org)

Necesitarás desplegar los siguientes manifiestos:


kubectl apply -f "https://github.com/mysql/mysql-operator/blob/8.2.0-2.1.1/deploy/deploy-crds.yaml" # CRDs

kubectl apply -f "https://github.com/mysql/mysql-operator/blob/8.2.0-2.1.1/deploy/deploy-operator.yaml" # Operator

kubectl apply -f "https://github.com/mysql/mysql-operator/blob/8.2.0-2.1.1/samples/sample-secret.yaml" # Secret (recomendado editar)

kubectl apply -f "https://github.com/mysql/mysql-operator/blob/8.2.0-2.1.1/samples/sample-cluster.yaml" # Cluster 3 instancias 1 router

Enter fullscreen mode Exit fullscreen mode

Basado en: https://www.infoq.com/news/2023/11/mysql-read-write-splitting/

Lectura complementaria: https://lefred.be/content/mysql-8-2-read-write-splitting-a-what-cost/

Top comments (0)