Мне интересно узнать, какую технику и инструменты я должен использовать, чтобы иметь возможность отправлять уведомления в режиме реального времени пользователям. В частности, если я создаю систему обмена сообщениями.Как создавать уведомления в режиме реального времени в распределенном проекте?
Я вижу, что современные социальные сети могут отправлять уведомления о новых сообщениях почти сразу. Даже когда пользователь «A» из одной страны пишет сообщение пользователю «B» в другой стране, вы можете видеть, что пользователь «A» пишет сообщение, и вы сразу видите его (даже если эти пользователи живут на разных континентах).
Я попытался выяснить, как это возможно, и найти любую информацию об этом, но безуспешно.
Единственное, что я узнал, это техника, когда мы используем сервер Redis или RabbitMQ с несколькими серверами, которые действуют как издатели и подписчики. Наши серверы API получают новые сообщения, затем они выталкивают новое сообщение в очередь, после чего подписчики получают сообщения, и если у них есть открытый WebSocket с получателем, они нажимают это сообщение в WebSocket, и клиент получает сообщение.
Но это действительно не сработает, если у вас есть распределенный проект, и ваши клиенты подключены к ближайшим серверам в ближайшем центре обработки данных.
Вопрос в том, какие технологии/технологии/все, что мы должны использовать, чтобы создавать уведомления в распределенном проекте?