мобильном приложении. После передачи сообщения пользователем через веб-сокеты, для основного и долговременного хранения сообщений будет использоваться PostgreSQL. Изначально для оповещения системы о новом сообщении в PostgreSQL я хотел использовать Listen/Notify, это такая система (от PostgreSQL), которая позволяет уведомлять сервер о новом сообщении в базе данных. Но Listen/Notify может подойти, наверное, только для самых базовых задач при разработке приложения, потому что нагрузки он не выдерживает вообще.
Вместо Listen/Notify я принял решение взять RabbitMQ. После добавления сообщения в PostgreSQL, это сообщение отправляется в очередь RabbitMQ, которая уведомляет API сервер о том, что пришло новое сообщение. Далее, когда API сервер увидел новое сообщение, он отправляет его пользователю, которому было это сообщение направлено.
У меня будет single instance сервер PostgreSQL, single instance RabbitMQ и API сервер. На этом моменте у меня появились сомнения насчет RabbitMQ. Зачем мне RabbitMQ для уведомления API сервера, если у меня он будет один, и он будет узнавать о появлении нового сообщения даже раньше, чем PostgreSQL и RabbitMQ? Получается, что я просто могу отправить это сообщение сразу после добавления в PostgreSQL получателю?
Насчет нагрузок тут все очень неоднозначно. Первое время точно нагрузки будут не прям огромные (конечно, точно предугадать невозможно). Взять RabbitMQ я хотел для того чтобы больше перестраховаться, если пойдет нагрузка, но как я написал ранее, я сейчас вообще сомневаюсь, что RabbitMQ нужен, если будет один API сервер. Заранее огромное спасибо за ответ
Стикер
Я ничего не жду, я пытаюсь разобраться что будет лучше конкретно для чата. Или если я сначала хотел взять Кафку то мне нужно чисто из принципа её брать?) если бы я тут информацию о Кафке написал то вам бы это что то дало?)
Стикер
На одном сервере норм делать обычный прям из туториалов по всяким signalr/socket.io Если хотите масштабирования, то уже не подойдёт. Но о каких нагрузках в уберпике идёт речь?
Стикер
Обсуждают сегодня