powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Java [игнор отключен] [закрыт для гостей] / Подскажите алгоритм работы серверной части чатов
25 сообщений из 29, страница 1 из 2
Подскажите алгоритм работы серверной части чатов
    #39846191
qi_ip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую!

Поделитесь, пожалуйста, измышлениями, как может/должна работать бэкэенд часть чат-серверов, при рассылке сообщений пользователей, наподобие телеграма, ватцапа, вайбера?

По большей части интересует, как реализовывается целевая рассылка сообщений от одного пользователя к другому (P2P): создается очередь сообщений для каждого пользователя, каждый раз в цикле для каждого пользователя job'иком делается селект из БД на наличие новых сообщений и рассылает или еще как-то?

Спасибо!
...
Рейтинг: 0 / 0
Подскажите алгоритм работы серверной части чатов
    #39846196
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qi_ip,
Всегда ожно усложнить.
Отдельный сервис в цикле аждую секунду достает Все изменения из базы в оперативку.
...
Рейтинг: 0 / 0
Подскажите алгоритм работы серверной части чатов
    #39846205
dimonz80
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qi_ipПриветствую!

Поделитесь, пожалуйста, измышлениями, как может/должна работать бэкэенд часть чат-серверов, при рассылке сообщений пользователей, наподобие телеграма, ватцапа, вайбера?

SSE/LongPolling/WS

qi_ipПо большей части интересует, как реализовывается целевая рассылка сообщений от одного пользователя к другому (P2P): создается очередь сообщений для каждого пользователя, каждый раз в цикле для каждого пользователя job'иком делается селект из БД на наличие новых сообщений и рассылает или еще как-то?




Publisher/Subscriber
...
Рейтинг: 0 / 0
Подскажите алгоритм работы серверной части чатов
    #39846210
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimonz80LongPollingтут не совсем бэк. Скорее бэк с фронтом.
Наверно и ТСу не один бэк нужен.
...
Рейтинг: 0 / 0
Подскажите алгоритм работы серверной части чатов
    #39846246
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qi_ipПриветствую!

Поделитесь, пожалуйста, измышлениями, как может/должна работать бэкэенд часть чат-серверов, при рассылке сообщений пользователей, наподобие телеграма, ватцапа, вайбера?

По большей части интересует, как реализовывается целевая рассылка сообщений от одного пользователя к другому (P2P): создается очередь сообщений для каждого пользователя, каждый раз в цикле для каждого пользователя job'иком делается селект из БД на наличие новых сообщений и рассылает или еще как-то?

Спасибо!
Для сложных, географически-децентрализованных чятов типа вайбер и телеграм есть скорее всего
семейство серверов. И если вы к примеру из РФ то подключаетесь к ближайшему. Если вы из USA
то соотв к своему.

Могу предположить что сеть серверов трекают появление клиента в сети и рассылают уведомления
всем. Типа смена статуса.

А когда клиент посылает месседж в чят-комнаты - идёт месседж по схеме publish-subscribe на все серваки.
И тот кто подписан соотв читает.
...
Рейтинг: 0 / 0
Подскажите алгоритм работы серверной части чатов
    #39846263
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC SharpОтдельный сервис в цикле аждую секунду достает Все изменения из базы в оперативку.
Это проглый век. Pub/Sub как уже сказали, ну и на клиенте можно вебсокеты
...
Рейтинг: 0 / 0
Подскажите алгоритм работы серверной части чатов
    #39846266
qi_ip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharpqi_ip,
Всегда ожно усложнить.
Отдельный сервис в цикле аждую секунду достает Все изменения из базы в оперативку.
Не будет ли это узким местом, влияющим на скорость отправки сообщений, во время обработки большого количества данных?
...
Рейтинг: 0 / 0
Подскажите алгоритм работы серверной части чатов
    #39846267
qi_ip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dimonz80
Publisher/Subscriber

Будем посмотреть в этом направлении ))) А можете посоветовать какие-нить либы (если есть), которые сами щупали?
...
Рейтинг: 0 / 0
Подскажите алгоритм работы серверной части чатов
    #39846270
qi_ip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonqi_ipПриветствую!

Поделитесь, пожалуйста, измышлениями, как может/должна работать бэкэенд часть чат-серверов, при рассылке сообщений пользователей, наподобие телеграма, ватцапа, вайбера?

По большей части интересует, как реализовывается целевая рассылка сообщений от одного пользователя к другому (P2P): создается очередь сообщений для каждого пользователя, каждый раз в цикле для каждого пользователя job'иком делается селект из БД на наличие новых сообщений и рассылает или еще как-то?

Спасибо!
Для сложных, географически-децентрализованных чятов типа вайбер и телеграм есть скорее всего
семейство серверов. И если вы к примеру из РФ то подключаетесь к ближайшему. Если вы из USA
то соотв к своему.

Могу предположить что сеть серверов трекают появление клиента в сети и рассылают уведомления
всем. Типа смена статуса.

А когда клиент посылает месседж в чят-комнаты - идёт месседж по схеме publish-subscribe на все серваки.
И тот кто подписан соотв читает.
Спасибо, посмотрю в этом направлении, а можете что-нить порекомендовать, может быть что юзали в этом направлении?
...
Рейтинг: 0 / 0
Подскажите алгоритм работы серверной части чатов
    #39846271
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл никЭто проглый век.угу. Конфигурастами стали

забыл никPub/Sub как уже сказали
Это просто паттерн. А внутри опрос бд?)))

забыл никвебсокетыне трогая клиента?
...
Рейтинг: 0 / 0
Подскажите алгоритм работы серверной части чатов
    #39846272
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qi_ipСпасибо, посмотрю в этом направлении,в каком? Вы плагин пишите к вайберу или собственную сеть?
...
Рейтинг: 0 / 0
Подскажите алгоритм работы серверной части чатов
    #39846275
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qi_ipPetroNotC Sharpqi_ip,
Всегда ожно усложнить.
Отдельный сервис в цикле аждую секунду достает Все изменения из базы в оперативку.
Не будет ли это узким местом, влияющим на скорость отправки сообщений, во время обработки большого количества данных?не будет. Выставляй пиво на спор.
...
Рейтинг: 0 / 0
Подскажите алгоритм работы серверной части чатов
    #39846276
qi_ip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharpqi_ipСпасибо, посмотрю в этом направлении,в каком? Вы плагин пишите к вайберу или собственную сеть?
Собственную сеть
...
Рейтинг: 0 / 0
Подскажите алгоритм работы серверной части чатов
    #39846279
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТС
А перед пивом покажи узкое место.
select раз в сек? Или что?
...
Рейтинг: 0 / 0
Подскажите алгоритм работы серверной части чатов
    #39846280
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qi_ipСобственную сетьтогда пиши первую версию до 100 юзверей. Потом новую версию если будет больше.
...
Рейтинг: 0 / 0
Подскажите алгоритм работы серверной части чатов
    #39846282
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qi_ipmaytonпропущено...

Для сложных, географически-децентрализованных чятов типа вайбер и телеграм есть скорее всего
семейство серверов. И если вы к примеру из РФ то подключаетесь к ближайшему. Если вы из USA
то соотв к своему.

Могу предположить что сеть серверов трекают появление клиента в сети и рассылают уведомления
всем. Типа смена статуса.

А когда клиент посылает месседж в чят-комнаты - идёт месседж по схеме publish-subscribe на все серваки.
И тот кто подписан соотв читает.
Спасибо, посмотрю в этом направлении, а можете что-нить порекомендовать, может быть что юзали в этом направлении?
Нет. Мессенджеры я не разрабатывал к сожалению. Я участвовал в разработке похожей
системы. Но бегают в ней не чят-сообщения а сообщения биржевых площадок.
...
Рейтинг: 0 / 0
Подскажите алгоритм работы серверной части чатов
    #39846284
qi_ip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharpqi_ipпропущено...

Не будет ли это узким местом, влияющим на скорость отправки сообщений, во время обработки большого количества данных?не будет. Выставляй пиво на спор.
Пока спорить не готов, так как только начал изучать )))) Вам верю!
...
Рейтинг: 0 / 0
Подскажите алгоритм работы серверной части чатов
    #39846286
qi_ip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC SharpТС
А перед пивом покажи узкое место.
select раз в сек? Или что?
Ну, как вариант, да. Если будет результат больше 100 тыс строк
...
Рейтинг: 0 / 0
Подскажите алгоритм работы серверной части чатов
    #39846287
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharpзабыл никЭто проглый век.угу. Конфигурастами стали

забыл никPub/Sub как уже сказали
Это просто паттерн. А внутри опрос бд?)))

забыл никвебсокетыне трогая клиента?

В данном случае можно и без базы легко обойтись, усилиями log-based broker message а-ля кафки. Чатовая архитектура в принципе хорошо ложится на eventsourcing. Не говоря о каком-нибудь NOTIFY|LISTEN в посгресе. Забудь уже о своих блокирующих опросах БД. кстати как быть если нужно несколько датацентров?
...
Рейтинг: 0 / 0
Подскажите алгоритм работы серверной части чатов
    #39846288
qi_ip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot mayton]qi_ipпропущено...
не чят-сообщения а сообщения биржевых площадок.
Ну, возможно принцип схож...там самописное использовали или что-то готовое?
...
Рейтинг: 0 / 0
Подскажите алгоритм работы серверной части чатов
    #39846291
dimonz80
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qi_ipdimonz80
Publisher/Subscriber

Будем посмотреть в этом направлении ))) А можете посоветовать какие-нить либы (если есть), которые сами щупали?

Akka streams
...
Рейтинг: 0 / 0
Подскажите алгоритм работы серверной части чатов
    #39846292
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharpqi_ipСобственную сетьтогда пиши первую версию до 100 юзверей. Потом новую версию если будет больше.

А вот тут есть доля правды.
ТС, система на 1000, 100000, 1000000 пользователей - это абсолютно разные системы. И какждое такое увеличение не дается бесплатно. Всегда имеет смысл разрабатывать систему, которая может обработать на один порядок больше сообщений, чем у тебя еть в данный момент. Иное -нерационально. Потом проще выкинуть и переписать. Так что если у тебя реально 100+ юзеров и один датацентр, то вполне может и опрос базы прокатить. А планировать а вдруг если у меня миллион сообщений будет, когда на сайте 3 калеки - это оверинжиниринг
...
Рейтинг: 0 / 0
Подскажите алгоритм работы серверной части чатов
    #39846293
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qi_ipрезультат больше 100 тыс строкне будут тормозить. Индексы в базе есть для этого.
...
Рейтинг: 0 / 0
Подскажите алгоритм работы серверной части чатов
    #39846294
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл никЗабудь уже о своих блокирующих опросах БДчто за ерунда?
ну и мы чат на 100 юзверей обсуждам.
...
Рейтинг: 0 / 0
Подскажите алгоритм работы серверной части чатов
    #39846309
dimonz80
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
забыл никPetroNotC Sharpпропущено...
тогда пиши первую версию до 100 юзверей. Потом новую версию если будет больше.

А вот тут есть доля правды.
ТС, система на 1000, 100000, 1000000 пользователей - это абсолютно разные системы. И какждое такое увеличение не дается бесплатно. Всегда имеет смысл разрабатывать систему, которая может обработать на один порядок больше сообщений, чем у тебя еть в данный момент. Иное -нерационально. Потом проще выкинуть и переписать. Так что если у тебя реально 100+ юзеров и один датацентр, то вполне может и опрос базы прокатить. А планировать а вдруг если у меня миллион сообщений будет, когда на сайте 3 калеки - это оверинжиниринг


Для данной задача БД - это один из сабскраберов, который подписан на все подряд и складывает сообщения где-то в хранилище, т.е. тупой логгер.

Банальная реализация для выглядит как-то так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
POST /message
   принимает сообщение от юзера и публикует для всех

GET /messages (это перистентное соединение, которое устанавливает клиент - SSE или long polling)
   отдает сообщения по пере поступления
   опционально может нырять в базу и сначала отдавать скажем 10 последних сообщений для данного юзера (ну тогда на клиент придется мержить с локальной историей)
        
...
Рейтинг: 0 / 0
25 сообщений из 29, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Подскажите алгоритм работы серверной части чатов
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]