Мониторинг кластера микросервисов (веб, очередь, db, ha прокси)

Я разрабатываю архитектуру, в которой все микросервисы сгруппированы. Например: 5 веб-серверов, 1 кластерный db, 1 кластерная система очереди, 8 кластеризованных рабочих (например, отправка электронной почты, отправка sms, ...), которые потребляют из очереди (задачи отправляются веб-сервером)

Мне интересно, как лучше всего определить, что каждый «кластер микросервисов» исправен, и как «быстро дать сбой» всей службе в таком случае, когда одна из микрослужб недоступна.

Вся служба находится за прокси-сервером nginx for ha - должен ли это быть nginx, который все отслеживает и дает сбой? Как я могу проверить работоспособность всех микросервисов?


person ptou    schedule 22.02.2015    source источник


Ответы (1)


Вам следует использовать внешнюю службу мониторинга, например Pingometer.

Это позволяет настраивать простые проверки работоспособности (HTTP, HTTPS, Ping и т. Д.) Через регулярные промежутки времени и получать предупреждения, если узел выходит из строя, недоступен или не отвечает с правильным содержимым.

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

Мы настраиваем что-то подобное, и оно работает неплохо.

Вы также можете использовать что-то внутреннее для мониторинга самого nGinX (например, удешевление рабочих + их возрождение), но это не дает вам знать, что служба работает извне (например, служба мониторинга).

person okoboko    schedule 24.02.2015