Escenario de requisito
Uso del servidor proxy HAProxy para equilibrar la carga Mysql es una solución común. Para mejorar la facilidad de uso, cuando hay un problema con Mysql, como el servidor Si falla, o se interrumpe la replicación de datos, es mejor informar a HAProxy de inmediato y luego detener el reenvío de sus solicitudes.
HAProxy ¿Cómo puedo saber si hay un problema con Mysql?
Solucionar ideas
(1) Escriba un script de shell para verificar el estado de mysql y luego muestre el resultado, por ejemplo, cuando el estado es normal, devuelva el código de estado 200 y la información correcta; de lo contrario, devuelva el código de estado 503 y Mensaje de error
(2) Implemente un servicio HTTP. Después de solicitar la conexión, llame al script de verificación anterior y devuelva el resultado de la verificación
(3) HAProxy accede al servicio HTTP de acuerdo con la información del resultado devuelto. Para determinar si este mysql está disponible
¿Cómo implementar rápida y fácilmente un servicio HTTP que pueda llamar shell scripts?
La solución más general es xinetd
xinetd es el demonio de Linux, el nombre completo es demonio interent extendido, el demonio de red extendido
xinetd puede abrir un puerto y esperar la conexión Puede decirle a xinetd qué secuencia de comandos debe ejecutar. Cuando entra una conexión, xinetd ejecutará la secuencia de comandos y luego devolverá directamente el contenido de la salida de la secuencia de comandos
HAProxy -> xinetd -> mysql-check script, HAProxy obtendrá Información de estado de MySQL
caso de configuración de xinetd
La siguiente implementación de un ejemplo simple de xinetd, abra el puerto 9200, devuelva un script de prueba Contenido de salida
Si no hay xinetd en la máquina, instálelo primero. Bajo centos7, puede usar el comando yum install xinetd
(1) secuencia de comandos de prueba
#! /Bin /bash
echo `uptime |
Egrep -o 'up ([0-9] +) días' |
Awk '{print $ 2}' `
Este script se usa para generar el número actual de días en línea del servidor
Agregar permisos ejecutables al script con chmod + x
(2) Xinetd service
Por ejemplo, el nombre del servicio es helloworld, el nombre del archivo es /etc/xinetd.d/helloworld, y el contenido es
service helloworld
{
disable = No
puerto = 9200
socket_type = flujo
protocol = tcp
wait = no
usuario = root
server = /root/test.sh
server_args = test
}
puerto Especifica el puerto para escuchar en
servidor especifica el script para ejecutar < Br>
(3) Únase a la lista de servicios
Modificar /etc /services
Encuentre la ubicación del puerto 9200, comente el original, agregue el servicio helloworld
Helloworld 9200 /tcp
# wap-wsp 9200 /tcp
# wap-wsp 9200 /udp
(4) Reiniciar xinetd
centos El comando de reinicio es:
systemctl restart xinetd.service
(5) Prueba
Prueba con nc y telnet respectivamente
nc localhost 9200
telnet localhost 9200
El contenido de ejecución del script se puede imprimir correctamente, complete el ejemplo
Para garantizar el funcionamiento normal del sistema Linux y resolver con precisión los diversos pro
Hay algunos escenarios en los que el administrador del sistema quiere que solo unos pocos usuarios
Cómo realizar eficazmente la administración de parches de Linux Red Hat Linux OS El parche de
Requisitos del sistema: versión ilimitada, requiere una plataforma de PC (CPU de arquitectura x86),
Linux obtiene el método de dirección IP nativo a través del Shell
Linux Algunos conceptos sobre bibliotecas de enlaces dinámicos y bibliotecas de enlaces estáticos
Operaciones de archivo y directorio
Recuperar la contraseña de root del superusuario de Linux
Método práctico de seguridad y limpieza de cuentas de usuario de Linux
Sistema operativo Linux monta problemas de disco U y disco duro
Linux parte del resumen de uso del comando de administración del sistema
Tutorial Web: Implementando Filtrado de Internet bajo Linux
Yum instala el tutorial básico de Tomcat
Descripción general de la estructura del código fuente del kernel de Linux
No se pueden abrir las propiedades del mouse del sistema Win7 Ultimate Cómo resolver
Win8 serie experiencia quintos episodios ocultos gadgets secreto (4)
¿Por cuánto tiempo puede estar continuamente encendida una computadora?
Microsoft anunció que hay más de 150 millones de dispositivos activos que utilizan el navegador Edge
Win10 actualiza Flash Player error 0x80070002 ¿Cómo resolverlo?
Win7 computadora perdió Msvcr110.dll cómo resolver