Лучший лазерный сервис для отправки строки в 1 миллион приложений конечных пользователей - сетка событий все еще находится в предварительном просмотре?

Я пытаюсь найти лучший сервис для выполнения задачи, в которой одному генератору событий нужно будет отправить простую строку потенциально 1 миллиону конечных пользователей / локальных приложений по всей стране. Подумайте об этом как о системе массовых уведомлений или о чате с участием 1 миллиона друзей. Требуется, чтобы все были получены менее чем за 30 секунд. Небольшое количество сообщений МОЖНО пропустить. Сотрудники Microsoft на форумах рекомендовали мне использовать для этой задачи службу «сетки событий».

Однако в документации о ценах на сетку событий указано, что «Вы можете иметь до 1000 подписок на сетку событий в течение периода предварительного просмотра». Если лимит подписчиков равен 1000, эта услуга не будет соответствовать моим требованиям. Итак, сетка событий все еще находится в режиме предварительного просмотра? Если нет, каков текущий лимит подписки? Если он все еще находится в режиме предварительного просмотра, когда он закончится? Я не могу точно оценить стоимость, если не знаю, каковы мои ограничения, и я не могу начать кодирование решения, если сетка событий не масштабируется до 1 миллиона конечных точек.

Есть ли способ лучше? Похоже, служебная шина Azure может обслуживать 1 миллион подписчиков, но это будет опрос и будет стоить на порядки больше, исходя из того, что я узнал из калькуляторов цен.

Мы будем очень благодарны за любую информацию или предложения. Спасибо!


person Edward Schoenherr    schedule 07.08.2018    source источник
comment
вы отправляете уведомления на смартфоны?   -  person Thomas    schedule 17.08.2018


Ответы (2)


Сетка событий поддерживает несколько типов конечных точек подписки:

введите описание изображения здесь

Предполагая, что вы создаете приложение, похожее на чат, для одного миллиона человек вам понадобится миллион подключений. Ни одна из этих конечных точек подписки не будет соответствовать вашему сценарию.

Вместо этого я бы посоветовал изучить службу Azure SignalR, которая точно адаптирован для таких сценариев, как ваш.

Для чего используется служба SignalR?

... типы приложений, требующие обновления содержимого в реальном времени

  • Приложения, требующие частых обновлений с сервера. Примеры: игры, социальные сети, голосование, аукцион, карты и приложения GPS.

Совместные приложения. Приложения для интерактивной доски и программное обеспечение для групповых встреч - примеры приложений для совместной работы.

Приложения, требующие уведомлений. Социальные сети, электронная почта, чат, игры, предупреждения о поездках и многие другие приложения используют уведомления.

Вам нужно будет узнать, сколько единиц обмена сообщениями вам понадобится и сколько это будет стоить, используя расценки подробности.

person Sean Feldman    schedule 07.08.2018
comment
Спасибо, Шон. При рассмотрении цен на SignalR он гласит: Включает 1000 одновременных подключений на единицу и 2 000 000 сообщений на единицу в день. Можно сконфигурировать максимум 10 единиц. Я прочитал это как общий лимит подключений в 10 000 (максимум 10 единиц умноженное на 1000 одновременных подключений на единицу). Это также не соответствует требованию масштабируемости до 1 миллиона пользователей. В зависимости от того, как быстро сохраняется событие, возможно, можно отправить сообщение на текущие 1000 одновременных подключений внутри устройства, затем изменить эти подключения и отправить еще один пакет несколько раз в течение 30 секунд? - person Edward Schoenherr; 08.08.2018
comment
Azure SignalR все еще находится в стадии предварительной версии, поэтому эти цифры можно искусственно занижать. Я связался с MSFT, чтобы получить ответ по квотам, когда он будет запущен в производство. Одна вещь, которую я не мог понять из вашего вопроса, - нужна ли вам двунаправленная связь или нет. то есть будет достаточно push-уведомлений для этих 1M одновременно подключенных клиентов или нет. Возможно, вы могли бы подробнее рассказать о варианте использования. - person Sean Feldman; 09.08.2018
comment
Двусторонняя связь для этого сообщения НЕ требуется. 1 генератор уведомлений «рассылает» потенциальным 1 млн конечных пользователей. Чтобы прояснить, что 1 миллион подключений НЕ обязательно должны быть «одновременными». Как я задал вопрос, если возможно, было бы достаточно, например, отправить, скажем, 10 пакетов одного и того же сигнала, каждая из которых занимает 3 секунды последовательно, и все равно 1 миллион пользователей получают сообщение в течение 30 секунд. Допустима и некоторая поломка, скажем, потеря 5%. - person Edward Schoenherr; 09.08.2018
comment
Итак, это не 1 млн пользователей, подключенных одновременно. Тогда что это? Я пытаюсь понять бизнес-кейс. Если существует так много одновременных пользователей / устройств, моя рекомендация даже не подходит. Электронная почта будет работать хорошо. Если это устройства IoT, тогда есть другая услуга. Вы уловили идею. - person Sean Feldman; 09.08.2018
comment
Мне нужно пользовательское приложение для обработки сообщений - без электронной почты. Я предложил альтернативный способ только потому, что не похоже, чтобы 1M нигде поддерживался. Если я могу подключиться к 10 тысячам клиентов 1М, отправить сообщение, затем отключить их и подключиться к следующим 10 тысячам клиентов 100 раз за 30 секунд, тогда все пользователи, которым это нужно, все равно получат его в нужное время. Еще здесь 99% клиентов ждут подключения на каждом шагу. Может ли 1 миллион пользовательских приложений постоянно «одновременно» читать элемент таблицы хранения? Чтение каждые 15 секунд будет стоить 150 тысяч долларов в месяц, но это всего лишь 15 центов на пользователя, и это возможно. - person Edward Schoenherr; 10.08.2018
comment
Как только SignalR выйдет из предварительного просмотра, у него будет гораздо более высокий предел, но кажется, что это не подходящий инструмент для этой проблемы. С помощью SignalR клиенты подключаются для двусторонней связи. Я до сих пор не понимаю, что это за клиенты. Т.е. какой бизнес-сценарий мы здесь обсуждаем. Мне не нравится, что 1M одновременных пользователей опрашивают стол, TBH. Лучше пойду в сторону уведомлений. Опять же, без понимания проблемы в более широком масштабе вместо узкого использования любые рекомендации здесь проблематичны ... - person Sean Feldman; 11.08.2018
comment
Я согласен, что сценарий типа уведомления идеален. Так что да, в signalR двусторонняя связь не нужна. Бизнес-сценарий должен быть неуместным (и секретным соусом, верно?), Если проблема сформулирована правильно. У меня есть потребность и готовность платить за услугу по доставке строки, сгенерированной в случайное время дня, более чем 1 миллиону приложений конечных пользователей, которые могут быть запущены клиентами. Я хочу, чтобы сообщение обрабатывалось этими локальными приложениями конечного пользователя (поэтому без шлюза электронной почты или SMS). Эти сообщения должны своевременно достигать всех запущенных локальных пользовательских приложений, что должно быть менее 30 секунд. - person Edward Schoenherr; 14.08.2018
comment
Я свяжу вас с командой SignalR для получения более подробной информации. Напишите мне feldman.sean на gmail.com - person Sean Feldman; 14.08.2018

Обновление ответа ниже:

Что касается сетки событий: существует соглашение об уровне обслуживания, доступное для службы сетки событий, и я нигде не мог найти, если она находится в предварительной версии. Так что я предполагаю, что сейчас его нет в предварительном просмотре.

Обновление: мне не удалось найти ограничения на количество подписчиков для сетки событий в документации. Я провожу собственный тест, чтобы проверить, сколько подписчиков можно создать. Будет обновлено через некоторое время.

Обновление 2: Сетка событий теперь общедоступна. https://azure.microsoft.com/en-us/roadmap/azure-event-grid/

Обновление 3: существует ограничение в 500 подписок на тему.

person Daredevil    schedule 07.08.2018
comment
не думаю, что вопрос был в электронной почте. Кроме того, есть поставщики массовой рассылки, такие как SendGrid, которые занесены в белый список и предоставляют рассылку рассылки за гроши. - person Sean Feldman; 08.08.2018
comment
Я хотел бы иметь возможность обрабатывать событие на стороне конечного пользователя, но электронная почта может быть альтернативой. Могут ли такие службы, как sendGrid, приблизиться к требованию, чтобы все миллионы писем приходили в течение 30 секунд? - person Edward Schoenherr; 08.08.2018