Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

173
Vistas
¿Cómo detectar programáticamente la conmutación por error automática en AWS mysql aurora?

Nuestra pila es nodejs con MySQL, estamos usando conexiones MySQL agrupando nuestra base de datos MySQL se administra en AWS aurora. en caso de conmutación por error automática, la base de datos maestra cambia, el nombre de host permanece igual, pero las conexiones dentro del grupo permanecen conectadas a la base de datos incorrecta. La única razón por la que encontramos para restablecer la conexión es para cambiar nuestros servidores.

esta es una demostración de una solución que creo que podría resolver este problema, pero prefiero una solución sin el intervalo establecido

 const mysql = require('mysql'); class MysqlAdapter { constructor() { this.connectionType = 'MASTER'; this.waitingForAutoFaileOverSwitch = false; this.poolCluster = mysql.createPoolCluster(); this.poolCluster.add(this.connectionType, { host: 'localhost', user: 'root', password: 'root', database: 'app' }); this.intervalID = setInterval(() => { if(this.waitingForAutoFaileOverSwitch) return; this.excute('SHOW VARIABLES LIKE \'read_only\';').then(res => { // if MASTER is set to read only is on then its mean a fail over is accoure and swe need to switch all connection in poll to secondry database if (res[0].Value === 'ON') { this.waitingForAutoFaileOverSwitch = true this.poolCluster.end(() => { this. waitingForAutoFaileOverSwitch = false }); }; }); }, 5000); } async excute(query) { // delay all incoming request until pool kill all connection to read only database if (this.waitingForAutoFaileOverSwitch) { return new Promise((resolve, reject) => { setTimeout(() => { this.excute(query).then(res => { resolve(res); }); }, 1000); }); } return new Promise((resolve, reject) => { this.poolCluster.getConnection(this.connectionType, (err, connection) => { if (err) { reject(err); } connection.query(query, (err, rows) => { connection.release(); if (err) { reject(err); } resolve(rows); }); }); }); } } const adapter = new MysqlAdapter();

¿Hay alguna otra forma programable de restablecer la conexión dentro del grupo?

¿Hay alguna notificación que podamos enumerar en caso de conmutación por error automática?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

En lugar de monitorear manualmente el estado de la base de datos, como también ha insinuado, idealmente nos suscribimos a los eventos de conmutación por error publicados por AWS RDS Aurora.

Aquí se enumeran varios eventos de conmutación por error para el clúster de base de datos: Categorías de eventos y mensajes de eventos de Amazon RDS

Sin embargo, puede usar y probar para ver cuál de ellos es el más confiable en su caso de uso para activar poolCluster.end() .

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda