Как стать автором
Обновить

Михаил Салосин. Golang Meetup. Использование Go в бэкенде приложения «Смотри+»

Время на прочтение 10 мин
Количество просмотров 5.5K
Всего голосов 20: ↑18 и ↓2 +16
Комментарии 5

Комментарии 5

Если что это доклад 2015 года.
Если (при таких исходных) потребуется передача данных от клиента к серверу, то websocket’ы или есть варианты?
Как, по Вашему мнению, изменилось бы решение, если проектировать под игорный бизнес?
По железу можно подробней: какой проц., накопители, сколько памяти… и каким минимумом железа можно обойтись, чтобы всё заработало? Потоковой репликации не нужно?
Спасибо.
Гоферам-новичкам: fan-in, fan-out в статье реализованы неправильно, так делать не надо! В идеоматичной реализации мьютексов быть не должно. Автора мы конечно не виним, это сложный паттерн и не все его понимают.
В PostgreSQL: Listen/Notify тикер не закрывается? Просто обычно делают что-то типо defer pingTicker.Close(), но я возможно просто не вижу и в… там есть закрытие тикера.
Очень много вопросов к Go коду, но это уже зависит от команды и выработанного стиля.
Самая главная проблема, которая возникнет с такой реализацией — очередь через PostgreSQL с помощью NOTIFY/LISTEN.
Дело в том, что даже в 12ой версии pg нет возможности создания групп консьюмеров, либо хотя бы метода подтверждения получения сообщения. В микро-сервисной архитектуре при, к примеру, 10 инстансах сервиса — 10 одинаковых сообщений.
Также, проблема проявится с реализацией failover'а, так как данная очередь ничего не сохранит в себе при падении сервера. Проще говоря, можно потерять все сообщения и получить отсутствие консистенции данных.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий