Мне больше нравится схема — Я мертв — Здоровья тебе
Через heartbeat это делают. Сообщить что мёртв не всегда можно - пример с обрывом соединения был уже, а ещё сервис может уйти в себя (зациклился, завис), и не сможет ничего послать
Вебсокет автоматом даёт знать, если произошел обрыв соединения
Напомню, в задаче речь шла о том, чтобы можно было проверить статус мс К чему тут вебсокеты?
Ну да ну да, а разработчики очередей (Кафка, раббит) не знают что так можно и такие лепят кучу Легаси кода в транспортном уровне, чтобы не пропустить отвалившегося клиента... Нет, это так не работает. Единственное как узнать, что та сторона умерла - это послать инфу и не получить ответа. По сути пинг.
Ну есть сервис, который держит соединения с каждым другим сервисом и в случае потери соединения, он трубит во все трубы, что произошло вторжение вражеских войск
А если он упал никто ничего не узнает
Бля, нет, ему нужно было не чтоб Кафка знал, что сервис упал, а чтоб другой сервис знал
Так обрыв соединения же будет. Или ты про тот, который отвечает за панику? Ну да, типа того. Но легко правится
Как это исправить? Тебе не кажется что ты уже на этом шаге для костыля изобретатешь собственный костыль?
У меня дед без костылей ходить не мог, а ты смеёшься, побойся бога. Да просто на другой стороне, в случае обрыва, такую же панику создам, но на момент отвала этого сервиса. И всё. Никаких костылей. (Дед дома сидеть будет)
А другая сторона это что? И получается, эта другая сторона тоже должна знать обо всех микросервисах?
Я просто с телефона пишу, ща. У нас есть 10 сервисов. Нам нужно знать, если один отвалился. Для этого мы создаём 11 сервис, который создаёт соединение с 10 и сообщает нам, если какой-то сервер упал (соединение было потеряно и не восстановилось за установленное время) Если же обрыв произошел со стороны этого сервиса, то на стороне тех 10 происходит такая же паника, которая сообщает, что этот сервис упал и не восстановился до установленного времени.
ты описываешь сейчас сервис локатор https://ru.wikipedia.org/wiki/Локатор_служб
Опять меня опередили, эх
Мы в равных условиях, я тоже с телефона 😁 А в чём смысл этих сообщений? В них есть смысл если есть что-то/кто-то, что/кто может отреагировать на падение сервиса. В идеале поднять упавшее. А что мс будут делать со знанием о том, что упал их надзиратель?
Локатор нужен для получения сервиса. А тут речь идёт о контроле жизни сервисов в распределённом приложении Так что схожесть только видимая
почему же, локатор умеет и за состоянием сервисов следить, чтобы в определенный момент сообщить всем о скоропостижной кончине
Ты не путаешь service locator и service discovery?
Оставьте свое мнение при себе. Кодить умеют не только атеисты.
хмм, возможно)) если честно про дискавери слышу впервые, и если это оно, то я его называл как локатор)
Ну сообщит нам. Тут уже мы вольны любые пакости делать. (Например поднять другой, или обратиться к другому сервисы)
Ты перекладывашь в каждый из мс логику поднятия надзирателя? Тогда они одновременно сразу всей компанией, все шесть-семь десятков, ломанутся его поднимать. Так что это очевидно плохое решение И значит снова встаёт вопрос - что делать с информацией о том, что надзиратель умер, и кто будет его поднимать? Получается, в твоей схеме нужен надзиратель для надзирателя
Обсуждают сегодня