Daniel
а как что? я без подколки, мне интересно
Vasiliy
Интересует исключительно способ обнаружить отвалившийся узел
Vasiliy
Или сабскрайбер в терминах очередей
Daniel
все интереснее и интереснее :)
а зачем его обнаруживать?
Vasiliy
Ну например есть задача, мы его кинули в очередь, нам надо как можно быстрее понять что обслуживающий узел отвалился и отдать его другому обработчику
Daniel
не надо
Vasiliy
Надо ) задача обрабатывается время, все это время клиенты ждут
Daniel
надо, чтобы свободный обработчик задачу забирал, и иметь их постоянно запущенными в достаточном количестве
Vasiliy
Задача не свободна, его взял обработчик, и сдох
Daniel
ну - ее же отпустит по таймауту, правда?
Vasiliy
Обработка задачи занимает определенное время, исчисляется десятками секунд
Vasiliy
Ну вот по таймауту, это дорого )
Daniel
и вы хотите, чтобы при отвале обработчика очередь об этом узнавала, и все задачи, что обработчик взял, в очередь возвращались?
Daniel
тогда у меня еще вопрос - почему очередь?
Daniel
почему не поговорить с обработчиком напрямую?
Vasiliy
Чтобы исключить сетевые/транспортные отвалы
Daniel
я вот тоже в incaller все пытался очередь приспособить, но она так и не приспособилась, а приспособился service discovery и rest api
Daniel
Daniel
очередь тут лишняя
Vasiliy
Ну как вариант, если отвалилась сеть то с высокой вероятностью отвалится и обработчик, конеш
Daniel
смотри
Daniel
у тебя есть консул, и обработчики в нем зарегистрированы, и консул проверяет сам, живы ли они
Daniel
у теб есть клиент, который раз в N секунд получает из консула список обработчиков
Daniel
и любому из них пытается отправить на обработку твой запрос
Daniel
получилось - ждет ответа
Daniel
если не получилось - пробует другой обработчик
Daniel
осли обработчик сдох в процессе - запрос вернется с ошибкой (или по таймауту в криминальных случаях)
Daniel
при чем тут очередь? ни при чем
Vasiliy
Задача долго обрабатывается (~30 сек) все это время нужно ждать HTTP-ответ выходит?
Daniel
а почему нет-то?
Daniel
сокеты экономить?
Vasiliy
Ну а если задач много сразу? Ага
Daniel
много - это сколько?
Vasiliy
Там же распределение Пуассона, надо считать
Vasiliy
Статистики пока нету, это не на проде
Daniel
не надо пока считать, надо порядок оценить
Vasiliy
А нету ограничения на скорость генерации задач одним клиентом, если ввести отложенное время начала обработки например +10 сек на каждую задачу то один пользователь одновременно может 3 обрабатывать, с прогнозом 1к чел/сервер думаю это не больше 3к пока
Vasiliy
Сокеты норм видимо
Daniel
именно
Daniel
я начинаю их в расчет брать только когда прогноз по ним - сотни тысяч. а по-настоящему на них экономить имеет смысл на миллионах
Vasiliy
Но для исходящих соединений не 64к лимит?
Vasiliy
Без всяких SO/REUSE_ADDR-сокетов
Daniel
64K - это лимит сокетной адресации, там на порт два байта отводится. это можно обойти с помощью алиасных адресов на интерфейсе
Daniel
но по факту - никогда еще не было нужно, кроме ка на тестах
Daniel
у нас 30с исполняется задание
Daniel
на 30К сокетов мы имеем возможность обработать 1К зданий в секунду
Daniel
их точно есть столько?
Daniel
у нас точно есть такая моща на обработчиках?
Daniel
я к тому, что мы во что-то сильно раньше упремся
Vasiliy
Эм, там время обработки нельзя уменьшить ) там запускается пропиетарный внешний тул от MS который можно запускать только в эксклюзивном режиме (нельзя пул создать, так как инстанцы блочат друг друга, вобщем жесть)
Vasiliy
И там работает только переход в количество )
Alexander
Всем привет
Alexander
Ребят кто-нибудь пользовал echo для разработки REST API ?
Alexander
Я сейчас использую fasthttp + gorm, мне советуют echo попробовать
Daniel
для разработки rest api надо пользоваться swagger
Daniel
потому, что это индустриальный стандарт
Alexander
Daniel
я подозреваю, что это синонимы
Alexander
ну и swagger мне сейчас не подойдет, потому как я API переписываю с другого языка
Alexander
swagger он как Rational Rose когда-то, генерит каркас и описание
Petr
я подозреваю, что это синонимы
Скажите, пожалуйста, чем Вы генерируете документацию? Задавался этим вопросом пол года назад, хорошего решения не было.
Daniel
не генерирую
Anonymous
Документация для слабаков 😄
Sergey
привет всем
в одном проекте не может быть больше одной функции main верно?
Daniel
ну - мне достаточно swagger.yml
Daniel
Andrey
Daniel
да проверить же 3 минуты
Daniel
только непонятно, зачем
Sergey
просто дело в том что хочу задачки по книге порешать и оформить их на гитхабе, каждая задача по сути будет в своей папке например
глава 1
задача 1
задача 2
глава 2
задача 1
и тд
Sergey
получается мэйн функция в корне проекта просто будет вызывать по очереди каждую задачу или как сделать?
Daniel
принято в проекте делать директорию cmd и в ней поддиректории сообразно приложениям
Aleksandr
Sergey
Aleksandr
Sergey
просто весь проект не скомпилится а надо компилить отдельно каждую задачу так?
Anonymous
Daniel
сейчас вы опять плохому научите человека...