LINUX.ORG.RU
ФорумAdmin

Поиск решения для обеспечения отказоустойчивости демона с «уникальным» исходящим соединением

 , ,


0

1

Добрый день!

У меня есть демон, который поднимает коннект к удаленному серверу и ждет от него инфы. На соседней тачке нужно поднять еще одну копию такого демона. Проблема в том, что удаленный хост может принимать только одно соединение (в соединении используется идентификатор, и вот для одного идентификатора можно поднимать только один коннект, поднимаем больше - все отваливаются; адрес хоста, порты и прочее - одинаковые). Какими средствами я могу реализовать такую схему? То есть чтоб если host1 или демон на нем упал, об этом узнавал host2 и поднимал демона у себя, ну и чтоб если host1 внезапно пришел в норму то либо демон на нем не запустился, либо остановился на host2? А, да, на самом деле таких демонов на хосте несколько (с разными идентификаторами), плюс не все запросы к удаленному хосту уникальны (у него есть контексты с максимум одним обращением с одним идентификатором, а есть те где ограничения на кол-во коннектов нет), то есть проверить только коннект на определенный адрес мне не достаточно.

В общем для входящего соединения можно было бы использовать балансировщики, virtualIP со всякими коросинками\пеймейкерами\кипалайвами, но что делать в случае исходящего соединения я придумать не могу.

В общем случае какой софт будет использоваться для построения такого «кластера» не не принципиально, но самым идеальным вариантом было бы накрутить это на основе supervisord. Если у демона нет коннекта к хосту - он падает, то есть можно смотреть только на сам процесс, не проверяя состояние его подключения к удаленному серверу. В код демона могут вноситься любые правки (осталось понять какие нужно).

Заранее спасибо за советы!

Вроде как Linux-HA Heartbeat просто проверяет наличие процесса (демона), ему не нужны входящие соединения. Но зачем тогда supervisord непонятно.

mky ★★★★★
()
Ответ на: комментарий от mky
iptables -A -d "server" ! -s "virtialip" -p tcp -j REJECT --reject-with tcp-reset

+ любой сервис, перебрасывающий «virtualip» между узлами.

DonkeyHot ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.