Недавно я добавил некоторые функции балансировки нагрузки на часть программного обеспечения, которое я написал. Это сетевое приложение, которое выполняет хэширование данных на основе ввода, поступающего из базы данных SQL. Поскольку хруст может быть довольно интенсивным, я добавил возможность иметь несколько экземпляров этого приложения, работающих на разных серверах, для разделения нагрузки, но поскольку теперь балансировка нагрузки является ручным действием. Пользователь должен указать, какие экземпляры занимают часть входного домена.
Я хотел бы перейти на следующий уровень и запрограммировать экземпляры для автоматического согласования погружения входных данных и распознавания, если один из них "исчезнет" (был разбит или был отключен), так что оставшиеся экземпляры могут принимать загруженную рабочую нагрузку экземпляра.
Чтобы реализовать это, я рассматриваю возможность использования простого протокола сердечных сокращений между экземплярами, чтобы определить, кто в сети, а кто нет, и хотя это не очень сложно, я хотел бы знать, есть ли установленные сетевые протоколы биения (на основе UDP, TCP или обоих).
Очевидно, это происходит в мире сетей с технологиями кластеризации, отказоустойчивости и высокой доступности, поэтому я думаю, что в конце концов я хотел бы знать, могут ли быть какие-либо установленные протоколы или алгоритмы, о которых я должен знать или реализовать.
ИЗМЕНИТЬ
Кажется, на основе ответов, что либо нет установленных протоколов сердечного ритма, либо никто не знает о них (что будет означать, что они не так хорошо установлены в конце концов), и в этом случае я просто собираюсь бросить мой собственный.
Хотя ни один из ответов не предлагал то, что я искал специально, я собираюсь голосовать за ответ Мэтта Дэвиса, поскольку он был самым близким, и он указал на хороший идея использовать многоадресную рассылку.
Спасибо всем за ваше время ~