Сервисный автобус Azure для публикации событий - PullRequest
0 голосов
/ 01 декабря 2019

Мы создаем мультитенантную систему, которая должна генерировать много событий в пакетах (особенно во время приема новых клиентов) и ищем способ отделить источник событий с помощью обработчиков событий. Поначалу сервисная шина Azure с несколькими подписками казалась лучшим вариантом, но она считала, что ограничения ограничены в размерах. (например, несколько ГБ на тему), и даже очереди, на мой взгляд, все еще малы для наших требований. (Около 80 ГБ)

Не поймите меня неправильно, мы не планируем загружать 100 ГБ данных во время обычной работы (примерно 99% времени). Однако, учитывая, что это мультитенант, количество арендаторов (и, следовательно, данных / событий) неизбежно будет расти. И мы предпочитаем использовать одну служебную шину / очередь, чтобы распределить нагрузку всех арендаторов между всеми нашими собственными серверами. Природа всплеска события такова, что один арендатор может генерировать огромный всплеск событий, в то время как другие не делают много;поэтому создание очереди для каждого арендатора;и каждый из наших серверов прослушивает несколько очередей арендаторов - это не очень хорошее использование нашего оборудования. И то, что все серверы прослушивают все (многие) очереди, вероятно, также не очень хороший способ распределения нагрузки.

Итак, наши самые важные требования:

  • никогда не пропускайте ни одного ввода.
  • равномерно распределяет нагрузку по переменному количеству серверов. (в идеале будет динамически масштабироваться в зависимости от размера очереди.)

Но мы можем жить со следующими недостатками:

  • это занимает некоторое время (дни ... ) прежде чем мы обработаем все
  • оплата за фактически использованный гигабайт (по сравнению с оплатой за резервирование)
  • замедляется, когда вы вводите много данных.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...