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
для разработки rest api надо пользоваться swagger
ну это для проектирования больше
Daniel
я подозреваю, что это синонимы
Alexander
ну и swagger мне сейчас не подойдет, потому как я API переписываю с другого языка
Alexander
swagger он как Rational Rose когда-то, генерит каркас и описание
Petr
я подозреваю, что это синонимы
Скажите, пожалуйста, чем Вы генерируете документацию? Задавался этим вопросом пол года назад, хорошего решения не было.
Daniel
не генерирую
Anonymous
Документация для слабаков 😄
Sergey
привет всем в одном проекте не может быть больше одной функции main верно?
Daniel
ну - мне достаточно swagger.yml
Daniel
да проверить же 3 минуты
Daniel
только непонятно, зачем
Sergey
просто дело в том что хочу задачки по книге порешать и оформить их на гитхабе, каждая задача по сути будет в своей папке например глава 1 задача 1 задача 2 глава 2 задача 1 и тд
Sergey
получается мэйн функция в корне проекта просто будет вызывать по очереди каждую задачу или как сделать?
Andrey
Я сейчас использую fasthttp + gorm, мне советуют echo попробовать
одно другому не мешает, у echo нету своей orm по этому можно и дальше использовать gorm и fasthttp можно с echo использовать, а из echo использовать роуты и какие-нибудь мидлвари
Daniel
принято в проекте делать директорию cmd и в ней поддиректории сообразно приложениям
Aleksandr
получается мэйн функция в корне проекта просто будет вызывать по очереди каждую задачу или как сделать?
ты расскажи как это должно работать по твоему, а то ты пропустил этот момент
Aleksandr
ну чтобы каждая задача отдельно запускалась )
тогда зачем в main это все пихать?
Sergey
тогда зачем в main это все пихать?
вот я и спросил у каждой задачи будет своя функция мэйн верно?
Sergey
просто весь проект не скомпилится а надо компилить отдельно каждую задачу так?
Daniel
сейчас вы опять плохому научите человека...