Гость
Форумы / Java [игнор отключен] [закрыт для гостей] / Подскажите алгоритм работы серверной части чатов / 25 сообщений из 29, страница 1 из 2
07.08.2019, 09:51
    #39846191
qi_ip
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите алгоритм работы серверной части чатов
Приветствую!

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

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

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

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

SSE/LongPolling/WS

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




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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

А вот тут есть доля правды.
ТС, система на 1000, 100000, 1000000 пользователей - это абсолютно разные системы. И какждое такое увеличение не дается бесплатно. Всегда имеет смысл разрабатывать систему, которая может обработать на один порядок больше сообщений, чем у тебя еть в данный момент. Иное -нерационально. Потом проще выкинуть и переписать. Так что если у тебя реально 100+ юзеров и один датацентр, то вполне может и опрос базы прокатить. А планировать а вдруг если у меня миллион сообщений будет, когда на сайте 3 калеки - это оверинжиниринг
...
Рейтинг: 0 / 0
07.08.2019, 12:31
    #39846293
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите алгоритм работы серверной части чатов
qi_ipрезультат больше 100 тыс строкне будут тормозить. Индексы в базе есть для этого.
...
Рейтинг: 0 / 0
07.08.2019, 12:33
    #39846294
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите алгоритм работы серверной части чатов
забыл никЗабудь уже о своих блокирующих опросах БДчто за ерунда?
ну и мы чат на 100 юзверей обсуждам.
...
Рейтинг: 0 / 0
07.08.2019, 12:53
    #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
Форумы / Java [игнор отключен] [закрыт для гостей] / Подскажите алгоритм работы серверной части чатов / 25 сообщений из 29, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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