|
Подскажите алгоритм работы серверной части чатов
|
|||
---|---|---|---|
#18+
Приветствую! Поделитесь, пожалуйста, измышлениями, как может/должна работать бэкэенд часть чат-серверов, при рассылке сообщений пользователей, наподобие телеграма, ватцапа, вайбера? По большей части интересует, как реализовывается целевая рассылка сообщений от одного пользователя к другому (P2P): создается очередь сообщений для каждого пользователя, каждый раз в цикле для каждого пользователя job'иком делается селект из БД на наличие новых сообщений и рассылает или еще как-то? Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 09:51 |
|
Подскажите алгоритм работы серверной части чатов
|
|||
---|---|---|---|
#18+
qi_ip, Всегда ожно усложнить. Отдельный сервис в цикле аждую секунду достает Все изменения из базы в оперативку. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 09:59 |
|
Подскажите алгоритм работы серверной части чатов
|
|||
---|---|---|---|
#18+
qi_ipПриветствую! Поделитесь, пожалуйста, измышлениями, как может/должна работать бэкэенд часть чат-серверов, при рассылке сообщений пользователей, наподобие телеграма, ватцапа, вайбера? SSE/LongPolling/WS qi_ipПо большей части интересует, как реализовывается целевая рассылка сообщений от одного пользователя к другому (P2P): создается очередь сообщений для каждого пользователя, каждый раз в цикле для каждого пользователя job'иком делается селект из БД на наличие новых сообщений и рассылает или еще как-то? Publisher/Subscriber ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 10:32 |
|
Подскажите алгоритм работы серверной части чатов
|
|||
---|---|---|---|
#18+
dimonz80LongPollingтут не совсем бэк. Скорее бэк с фронтом. Наверно и ТСу не один бэк нужен. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 10:48 |
|
Подскажите алгоритм работы серверной части чатов
|
|||
---|---|---|---|
#18+
qi_ipПриветствую! Поделитесь, пожалуйста, измышлениями, как может/должна работать бэкэенд часть чат-серверов, при рассылке сообщений пользователей, наподобие телеграма, ватцапа, вайбера? По большей части интересует, как реализовывается целевая рассылка сообщений от одного пользователя к другому (P2P): создается очередь сообщений для каждого пользователя, каждый раз в цикле для каждого пользователя job'иком делается селект из БД на наличие новых сообщений и рассылает или еще как-то? Спасибо! Для сложных, географически-децентрализованных чятов типа вайбер и телеграм есть скорее всего семейство серверов. И если вы к примеру из РФ то подключаетесь к ближайшему. Если вы из USA то соотв к своему. Могу предположить что сеть серверов трекают появление клиента в сети и рассылают уведомления всем. Типа смена статуса. А когда клиент посылает месседж в чят-комнаты - идёт месседж по схеме publish-subscribe на все серваки. И тот кто подписан соотв читает. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 11:50 |
|
Подскажите алгоритм работы серверной части чатов
|
|||
---|---|---|---|
#18+
PetroNotC SharpОтдельный сервис в цикле аждую секунду достает Все изменения из базы в оперативку. Это проглый век. Pub/Sub как уже сказали, ну и на клиенте можно вебсокеты ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 12:07 |
|
Подскажите алгоритм работы серверной части чатов
|
|||
---|---|---|---|
#18+
PetroNotC Sharpqi_ip, Всегда ожно усложнить. Отдельный сервис в цикле аждую секунду достает Все изменения из базы в оперативку. Не будет ли это узким местом, влияющим на скорость отправки сообщений, во время обработки большого количества данных? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 12:09 |
|
Подскажите алгоритм работы серверной части чатов
|
|||
---|---|---|---|
#18+
dimonz80 Publisher/Subscriber Будем посмотреть в этом направлении ))) А можете посоветовать какие-нить либы (если есть), которые сами щупали? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 12:12 |
|
Подскажите алгоритм работы серверной части чатов
|
|||
---|---|---|---|
#18+
maytonqi_ipПриветствую! Поделитесь, пожалуйста, измышлениями, как может/должна работать бэкэенд часть чат-серверов, при рассылке сообщений пользователей, наподобие телеграма, ватцапа, вайбера? По большей части интересует, как реализовывается целевая рассылка сообщений от одного пользователя к другому (P2P): создается очередь сообщений для каждого пользователя, каждый раз в цикле для каждого пользователя job'иком делается селект из БД на наличие новых сообщений и рассылает или еще как-то? Спасибо! Для сложных, географически-децентрализованных чятов типа вайбер и телеграм есть скорее всего семейство серверов. И если вы к примеру из РФ то подключаетесь к ближайшему. Если вы из USA то соотв к своему. Могу предположить что сеть серверов трекают появление клиента в сети и рассылают уведомления всем. Типа смена статуса. А когда клиент посылает месседж в чят-комнаты - идёт месседж по схеме publish-subscribe на все серваки. И тот кто подписан соотв читает. Спасибо, посмотрю в этом направлении, а можете что-нить порекомендовать, может быть что юзали в этом направлении? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 12:13 |
|
Подскажите алгоритм работы серверной части чатов
|
|||
---|---|---|---|
#18+
забыл никЭто проглый век.угу. Конфигурастами стали забыл никPub/Sub как уже сказали Это просто паттерн. А внутри опрос бд?))) забыл никвебсокетыне трогая клиента? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 12:15 |
|
Подскажите алгоритм работы серверной части чатов
|
|||
---|---|---|---|
#18+
qi_ipСпасибо, посмотрю в этом направлении,в каком? Вы плагин пишите к вайберу или собственную сеть? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 12:17 |
|
Подскажите алгоритм работы серверной части чатов
|
|||
---|---|---|---|
#18+
qi_ipPetroNotC Sharpqi_ip, Всегда ожно усложнить. Отдельный сервис в цикле аждую секунду достает Все изменения из базы в оперативку. Не будет ли это узким местом, влияющим на скорость отправки сообщений, во время обработки большого количества данных?не будет. Выставляй пиво на спор. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 12:18 |
|
Подскажите алгоритм работы серверной части чатов
|
|||
---|---|---|---|
#18+
PetroNotC Sharpqi_ipСпасибо, посмотрю в этом направлении,в каком? Вы плагин пишите к вайберу или собственную сеть? Собственную сеть ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 12:19 |
|
Подскажите алгоритм работы серверной части чатов
|
|||
---|---|---|---|
#18+
ТС А перед пивом покажи узкое место. select раз в сек? Или что? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 12:20 |
|
Подскажите алгоритм работы серверной части чатов
|
|||
---|---|---|---|
#18+
qi_ipСобственную сетьтогда пиши первую версию до 100 юзверей. Потом новую версию если будет больше. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 12:21 |
|
Подскажите алгоритм работы серверной части чатов
|
|||
---|---|---|---|
#18+
qi_ipmaytonпропущено... Для сложных, географически-децентрализованных чятов типа вайбер и телеграм есть скорее всего семейство серверов. И если вы к примеру из РФ то подключаетесь к ближайшему. Если вы из USA то соотв к своему. Могу предположить что сеть серверов трекают появление клиента в сети и рассылают уведомления всем. Типа смена статуса. А когда клиент посылает месседж в чят-комнаты - идёт месседж по схеме publish-subscribe на все серваки. И тот кто подписан соотв читает. Спасибо, посмотрю в этом направлении, а можете что-нить порекомендовать, может быть что юзали в этом направлении? Нет. Мессенджеры я не разрабатывал к сожалению. Я участвовал в разработке похожей системы. Но бегают в ней не чят-сообщения а сообщения биржевых площадок. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 12:22 |
|
Подскажите алгоритм работы серверной части чатов
|
|||
---|---|---|---|
#18+
PetroNotC Sharpqi_ipпропущено... Не будет ли это узким местом, влияющим на скорость отправки сообщений, во время обработки большого количества данных?не будет. Выставляй пиво на спор. Пока спорить не готов, так как только начал изучать )))) Вам верю! ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 12:23 |
|
Подскажите алгоритм работы серверной части чатов
|
|||
---|---|---|---|
#18+
PetroNotC SharpТС А перед пивом покажи узкое место. select раз в сек? Или что? Ну, как вариант, да. Если будет результат больше 100 тыс строк ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 12:25 |
|
Подскажите алгоритм работы серверной части чатов
|
|||
---|---|---|---|
#18+
PetroNotC Sharpзабыл никЭто проглый век.угу. Конфигурастами стали забыл никPub/Sub как уже сказали Это просто паттерн. А внутри опрос бд?))) забыл никвебсокетыне трогая клиента? В данном случае можно и без базы легко обойтись, усилиями log-based broker message а-ля кафки. Чатовая архитектура в принципе хорошо ложится на eventsourcing. Не говоря о каком-нибудь NOTIFY|LISTEN в посгресе. Забудь уже о своих блокирующих опросах БД. кстати как быть если нужно несколько датацентров? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 12:27 |
|
Подскажите алгоритм работы серверной части чатов
|
|||
---|---|---|---|
#18+
[quot mayton]qi_ipпропущено... не чят-сообщения а сообщения биржевых площадок. Ну, возможно принцип схож...там самописное использовали или что-то готовое? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 12:27 |
|
Подскажите алгоритм работы серверной части чатов
|
|||
---|---|---|---|
#18+
qi_ipdimonz80 Publisher/Subscriber Будем посмотреть в этом направлении ))) А можете посоветовать какие-нить либы (если есть), которые сами щупали? Akka streams ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 12:30 |
|
Подскажите алгоритм работы серверной части чатов
|
|||
---|---|---|---|
#18+
PetroNotC Sharpqi_ipСобственную сетьтогда пиши первую версию до 100 юзверей. Потом новую версию если будет больше. А вот тут есть доля правды. ТС, система на 1000, 100000, 1000000 пользователей - это абсолютно разные системы. И какждое такое увеличение не дается бесплатно. Всегда имеет смысл разрабатывать систему, которая может обработать на один порядок больше сообщений, чем у тебя еть в данный момент. Иное -нерационально. Потом проще выкинуть и переписать. Так что если у тебя реально 100+ юзеров и один датацентр, то вполне может и опрос базы прокатить. А планировать а вдруг если у меня миллион сообщений будет, когда на сайте 3 калеки - это оверинжиниринг ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 12:30 |
|
Подскажите алгоритм работы серверной части чатов
|
|||
---|---|---|---|
#18+
qi_ipрезультат больше 100 тыс строкне будут тормозить. Индексы в базе есть для этого. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 12:31 |
|
Подскажите алгоритм работы серверной части чатов
|
|||
---|---|---|---|
#18+
забыл никЗабудь уже о своих блокирующих опросах БДчто за ерунда? ну и мы чат на 100 юзверей обсуждам. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 12:33 |
|
Подскажите алгоритм работы серверной части чатов
|
|||
---|---|---|---|
#18+
забыл никPetroNotC Sharpпропущено... тогда пиши первую версию до 100 юзверей. Потом новую версию если будет больше. А вот тут есть доля правды. ТС, система на 1000, 100000, 1000000 пользователей - это абсолютно разные системы. И какждое такое увеличение не дается бесплатно. Всегда имеет смысл разрабатывать систему, которая может обработать на один порядок больше сообщений, чем у тебя еть в данный момент. Иное -нерационально. Потом проще выкинуть и переписать. Так что если у тебя реально 100+ юзеров и один датацентр, то вполне может и опрос базы прокатить. А планировать а вдруг если у меня миллион сообщений будет, когда на сайте 3 калеки - это оверинжиниринг Для данной задача БД - это один из сабскраберов, который подписан на все подряд и складывает сообщения где-то в хранилище, т.е. тупой логгер. Банальная реализация для выглядит как-то так: Код: plaintext 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 12:53 |
|
|
start [/forum/topic.php?fid=59&msg=39846263&tid=2121170]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
165ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 268ms |
total: | 534ms |
0 / 0 |