Recientemente he agregado algunas capacidades de equilibrio de carga a una pieza de software que escribí. Es una aplicación en red que hace algunos crujidos de datos en función de la entrada proveniente de una base de datos SQL. Debido a que la compresión puede ser bastante intensa, he agregado la capacidad de tener varias instancias de esta aplicación ejecutándose en diferentes servidores para dividir la carga, pero como ahora el balanceo de carga es un acto manual. Un usuario debe especificar qué instancias toman qué porción del dominio de entrada.Protocolos/algoritmos Heartbeat o mejores prácticas
Me gustaría llevar eso al siguiente nivel y programar las instancias para negociar automáticamente la inmersión de los datos de entrada y reconocer si uno de ellos "desaparece" (se ha bloqueado o se ha apagado) para que el las instancias restantes pueden asumir la carga de trabajo de la instancia fallida.
Para implementar esto estoy considerando usar un protocolo de latido simple entre las instancias para determinar quién está conectado y quién no y, aunque esto no es demasiado complicado, quisiera saber si hay alguna red establecida de latidos protocolos (basados en UDP, TCP o ambos).
Obviamente, esto sucede mucho en el mundo de las redes con tecnologías de clustering, fail-over y alta disponibilidad, así que supongo que al final me gustaría saber si tal vez haya protocolos o algoritmos establecidos de los que deba tener conocimiento de o implementar.
EDITAR
Parece, sobre la base de las respuestas, que, o bien porque no se han establecido protocolos de latido del corazón o que nadie sabe acerca de ellos (lo que implica que no están tan bien establecidas después de todo) en cuyo caso voy a hacer mi propia versión.
Si bien ninguna de las respuestas ofrecía lo que estaba buscando específicamente, voy a votar por Matt Davis's answer ya que era la más cercana y señaló que era una buena idea usar la multidifusión.
Gracias a todos por su tiempo ~
¿Sabe si es posible personalizar los mensajes latidos nativos de WebLogic, para agregar algo de información adicional como la carga actual de la CPU y/o la red? (para permitir algoritmos de equilibrio de carga que usen esa información para evitar sobrecargar un servidor en apuros con más solicitudes) – XpiritO
Eso es más una pregunta para Pascal (http://stackoverflow.com/questions/1442189/heartbeat-protocols-algorithms-or- mejores prácticas/1442255 # 1442255). No estoy tan familiarizado con WebLogic, en mi caso terminé usando lo que ya había empezado a trabajar en una solución personalizada basada en UDP. –