nelfo, Если хочется обойтись без очередей, тогда на ноде-сервере делаете grpc-стрим и все клиенты туда подключаются. Внутри придется реализовать ту же самую очередь, что сделана в Кафке.
Когда сообщение приходит в сервис, его надо отправить на одну любую из 30-100 нод другого сервиса? Или же надо, чтобы каждая из этих 30-100 нод другого сервиса получила сообщение?
Выглядит все нормально, значит что-то с сетью вашей.
Попробуйте выставить GOPROXY в direct, он будет качать не через кэш модулей, а напрямую с гитхаба.
И покажите, что выведет. Лучше скидывайте текстом, а не картинкой.
Андрей Пушкин, вы же можете мультиплексировать сколько угодно входящих соединений в одно исходящее, если воспринимать их не как коннекты, а как поток событий.
докер валится с ошибкой подключения к приватной репе по тайм-ауту
Влияет это напрямую, потому что го подключается к репе через гопрокси. Соли нет соединения до гопрокси, то будет как раз такая ошибка.
Если гопрокси не указан или репа упомянута в переменной GONOPROXY, тогда го попытается подключиться к гиту напрямую, используя конфиги гита (они у вас тоже могут отличаться на хосте и контейнере, кстати).
Переменные окружения, которые указывают на нужный гопрокси одинаковые на хосте и внутри докера? Хост-машина пытается идти на тот же адрес, что и сборка внутри докера?
Это как в коде напишете, вообще лучше всего большие файлы стримить на диск. Как сделано в фреймворке, который используете -- не знаю. Но это вполне может быть причиной падения, которая вызывает у вас 502.
Fiber не логирует вообще никаких обращений в таких кейсах
А вот это сильно зависит от того, как в файбере настроены логи. Вполне возможно что он логает после обработки запроса, тогда даже если запрос доходит до приложения, лога вы не увидите. Добавьте свой лог, который бы срабатывал именно при приеме запроса (поставьте перед файбером мидлварю свою, например).
calculator212, как по мне, функция Where(sq.And{}) у сквирела это и есть "фильтры, которые передает пользователь", так и не понял, чем отличается от этого то, что вы хотите. Там sq.And это как раз массив предикатов.
calculator212, нет же, в сквирел запрос билдился динамически на рантайме, вы можете его по частям билдить и добавлять или не добавлять какие-то поля или условия в зависимости от логики вашего кода.
vacoo, представь, что у тебя 100тыс пользователей играют и каждому надо рендерить кадры и каждому посылать картинку, безлимитного интернета для серверов не бывает.
vacoo, Твич не рендерит разную игру для каждого пользователя. Игра рендерится на компе у стримера и один и тот же стрим распространяется на аудиторию (качество и задержка там недостаточное чтобы в таком режиме играть, кстати)
Можно как в VR делать, кстати. Там когда на шлем транслируется картинка по вайфаю, низкая задержка достигается тем, что при повороте головы игрока шлем сразу начинает двигать перед глазами картинку (она отрендерена с небольшим запасом по краям).
Можно тоже рендерить в небольшим запасом и при повороте взгляда или скролле карты мышкой (в зависимости от типа игры), сдвигать сначала картинку, пока не пришли свежие кадры.