Можно ли использовать Google Pub / Sub для обмена сообщениями в чате? - PullRequest
0 голосов
/ 09 декабря 2018

Я разрабатываю приложение, в котором есть чат между пользователями.Имеет ли смысл использовать Pub / Sub для этой цели?Я не мог найти в документации как возможный вариант использования.Есть ли веские причины, по которым он не подходит?

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

Google Cloud Pub / Sub не подходит для общения с устройствами конечных пользователей в чате.Cloud Pub / Sub разработан для торрентов : относительно небольшого количества долгоживущих потоков, требующих высокой пропускной способности.В приложении чата вам нужно струйки : очень большое количество эфемерных потоков с низкой пропускной способностью.

Cloud Pub / Sub квоты допускают только 10 000 темпроект и 10 000 подписок на тему или проект.При настройке нового потокового конвейера обычно сначала создается тема и ее подписки, а затем публикуется и подписывается с этого момента.Таким образом, Cloud Pub / Sub лучше подходит для обмена данными между серверами или для крупномасштабных потоковых событий, часто в связи с Dataflow и / или BigQuery .

Модель разрешений для Cloud Pub / Sub также не делает его хорошим выбором для приложения чата.Разрешение на запись или чтение из темы или подписки требует аутентификации пользователя.Аутентификация каждого отдельного пользователя с разрешениями в вашем проекте на самом деле неосуществима, поэтому у вас остается возможность использовать общие учетные данные для всех ваших пользователей, что может быть небезопасно.

Это не означает, что Cloud Pub / Sub не может быть частью службы чата, его просто нельзя использовать для доставки сообщений определенным пользователям.Фактически, Cloud Pub / Sub может использоваться в качестве транспортного механизма для сообщений, отправляемых чат-ботам Hangouts.Однако в этой ситуации ответ пользователю направляется непосредственно в API чата Hangouts, а не обратно через Pub / Sub.Поэтому, если вы внедряете службу чата, ваши пользователи могут посылать сообщения на разработанный вами интерфейсный сервер, который затем публикует эти сообщения в Cloud Pub / Sub.Другой созданный вами сервер может быть подписчиком этих сообщений, а затем доставлять соответствующие сообщения соответствующим отдельным пользователям.В этой ситуации Cloud Pub / Sub используется для приема всех сообщений с вашего внешнего сервера (торрент), а доставка сообщений отдельным пользователям попадает в какой-то другой механизм (тонкие струйки).Продукт в Google Cloud, предназначенный для этого отдельного устройства, представляет собой Firebase Cloud Messaging ,

0 голосов
/ 09 декабря 2018

Можно ли использовать Google Pub / Sub для обмена сообщениями в чате?

Да.Я бы не стал использовать Pub / Sub для личных сообщений chat.Pub / Sub предназначен для систем, чтобы отключить себя для поддержки распределенных систем.

Почему бы не использовать Pub / Sub:

  • Разрешения.Вам нужно будет создать учетные данные учетной записи службы и распространить этот файл Json для каждого подписчика.Это небезопасно.
  • Каждому пользователю чата понадобится подписка на паб / подраздел, а затем poll эта подписка.Это означает одну подписку на человека в чате.Это не хороший дизайн и не inexpensive.

Существуют гораздо лучшие решения для chat.

...