Size: a a a

2020 May 26

МК

Максим Ковалёв... in Go-go!
DMITRY
из простого способа nginx\proxy как вам написали,настаривается за пару часов
ну всё равно, если даже их будет запущено 5, при рестарте одного - кто-нибудь из запрашивающих наткнётся на него, и при ошибке - пойдёт спрашивать другого. Теряется время
источник

AK

Andrey Kolkov in Go-go!
Максим Ковалёв
вообще - смотрел, и пробовал много, но везде есть недостатки, то не читает окружение, то логи не пишет, то соединения теряет (пусть и не много штук, но всё же)
Здесь, вроде нормальный
https://github.com/qiangxue/go-rest-api
источник

VM

Vladislav Milenin in Go-go!
Ок, про reuse не изучал. Но в любом случае создавать green и blue контейнеры, ждать n секунд и переключать трафик с докером несложно
источник

DG

Dmitry Goncharov in Go-go!
Максим Ковалёв
ну всё равно, если даже их будет запущено 5, при рестарте одного - кто-нибудь из запрашивающих наткнётся на него, и при ошибке - пойдёт спрашивать другого. Теряется время
сейчас балансировщики умные и можно настроить так что при ошибке от бека - 500 ответ - перенаправить на другую ноду
источник

D

DMITRY in Go-go!
Максим Ковалёв
ну всё равно, если даже их будет запущено 5, при рестарте одного - кто-нибудь из запрашивающих наткнётся на него, и при ошибке - пойдёт спрашивать другого. Теряется время
если ты хочешь рестартить,то заранее убери из балансера ноду
источник

G

Gabriel in Go-go!
Максим Ковалёв
ну всё равно, если даже их будет запущено 5, при рестарте одного - кто-нибудь из запрашивающих наткнётся на него, и при ошибке - пойдёт спрашивать другого. Теряется время
Для этого есть healthcheck сервиса, туда просто не направится трафик
источник

МК

Максим Ковалёв... in Go-go!
DMITRY
если ты хочешь рестартить,то заранее убери из балансера ноду
ну и получается - убрал, перезапустил nginx, рестартанул демона1, включил в nginx, убрал второго, и по кругу?
источник

D

DMITRY in Go-go!
Максим Ковалёв
ну и получается - убрал, перезапустил nginx, рестартанул демона1, включил в nginx, убрал второго, и по кругу?
без перезапуска через reload
источник

ВС

Владимир Столяров... in Go-go!
Максим Ковалёв
ну всё равно, если даже их будет запущено 5, при рестарте одного - кто-нибудь из запрашивающих наткнётся на него, и при ошибке - пойдёт спрашивать другого. Теряется время
так graceful shutdown происходит так, что сначала перестают приниматься новые коннекты, затем ждем завершения текущих запросов и все, но есть нюанс, если в демон проберутся вебсокеты/http2-стримы/etc (как-то делается conn hijack) то оно не сработает, точнее надо будет дополнительную логику накручивать на завершение
источник

DG

Dmitry Goncharov in Go-go!
а я не понимаю зачем этот грейсфул шатдаун нужен
источник

AK

Andrey Kolkov in Go-go!
Vladislav Milenin
я не очень понимаю как запустить 2 приложения на 1 порту
А разве в одной системе так возможно? Мне кажется только в контейнере можно...
источник

VM

Vladislav Milenin in Go-go!
Владимир Столяров
так graceful shutdown происходит так, что сначала перестают приниматься новые коннекты, затем ждем завершения текущих запросов и все, но есть нюанс, если в демон проберутся вебсокеты/http2-стримы/etc (как-то делается conn hijack) то оно не сработает, точнее надо будет дополнительную логику накручивать на завершение
ну там вроде без этой логики и не стоит такое билдить)
источник

DG

Dmitry Goncharov in Go-go!
надо брать самую плохую ситуацию что хост сдох и приложение умерло - от слова совсем )
источник

VM

Vladislav Milenin in Go-go!
Andrey Kolkov
А разве в одной системе так возможно? Мне кажется только в контейнере можно...
нет
почитайте про scale
источник

МК

Максим Ковалёв... in Go-go!
Ну либо писать свой балансер (или как его назвать), к которому будут обращаться те, кто запрашивает, он будет выдавать им рабочего демона, при этом проверяя его на доступность.
А при перезагрузке демона - слать сообщение в балансер, что бы тот исключил его из раздачи. При запуске нового демона - включил. Но опять же это получается 2 запроса от зпрашивающего. 1 - к балансеру для получения демона, второй к демону.

Хотя если только кешировать это всё и выбирать случайно, может сработать. Сам спросил, сам ответил ))
источник

AK

Andrey Kolkov in Go-go!
Vladislav Milenin
нет
почитайте про scale
А как несколько go микросервисов запустить на одном порту на одной машине?
источник

N

Nikolay in Go-go!
Andrey Kolkov
А как несколько go микросервисов запустить на одном порту на одной машине?
поставить перед ними апликейшен сервер с балансировщиком
источник

AB

Artur Borisovich in Go-go!
А у тебя задача F прошла тест или нет? Я не понял почему у меня решение ок, пишется в файл, все вроде выглядит ок, а тесты не проходит
источник

AK

Andrey Kolkov in Go-go!
Nikolay
поставить перед ними апликейшен сервер с балансировщиком
Он же ругаться будет, что порт уже занят? Или они должнюны быть в докерах, виртуалках, на разных хостах?
источник

VK

Valentin Kuzmich in Go-go!
Всем привет, только начинаю с Go работать, начал использовать GoLang и столкнулся с проблемой, не получается скопировать и вставить в документ(через Ctrl+C, Ctrl+V, по правой кнопке мыши все работает, но это не удобно), курсор пропадает и появляется это...

В гугле искал, но ничего не нашел, видимо что-то в настройках редактора
источник