2016-03-06 2 views
1

Имеет ли Azure Service Bus и его внутреннюю версию Service Bus для Windows Server репликацию сообщения для каждого абонента?Служит ли служебная шина Microsoft для получения каждой подписки в теме?

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

Было бы неплохо, если в качестве справочной информации есть официальный сайт и/или документация.

+1

Хранение дешево. Таким образом, имеет смысл дублировать эти сообщения, а не пытаться создавать и поддерживать чрезвычайно сложную логику, которая будет поддерживать синхронизацию информации, связанной с несколькими подписками. Подумайте о DLQ, продолжительности блокировки, автоматическом удалении на холостом ходу, сообщении TTL v и подписке по умолчанию TTL, сеансах, пакетной обработке и т. Д. –

ответ

2

Поведение Azure Service Bus похоже на то, что он хранит копию для каждого абонента. Я проверил это, создав тему с двумя подписками. Я отправил одно сообщение, и я вижу, что размер темы в байтах равен 464 (используя topic.SizeInBytes). Когда я получаю одно сообщение подписки, размер уменьшается в два раза до 232. Я тестировал его с тремя подписками и таким же поведением: 696 байт.

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

Я согласен с тем, что было бы хорошо, если бы они задокументировали поведение, особенно для служебной шины для Windows Server, поскольку это может повлиять на планирование объема хранилища, которое необходимо отложить. Что касается шины Azure Service Bus, я не уверен, что реализация за кулисами имеет значение, а также знание того, как она влияет на максимальный размер темы.

+0

Я не уверен, сколько это поможет для размещенной службы. ASB, являясь размещенной службой, которая абстрагируется и как потребитель защищена от деталей. Для WSSB, возможно, это совсем другая история. –

+0

Я согласен с Шоном. Для размещенного ASB это действительно влияет только на максимальный размер требуемой темы. – MikeWo

2

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

Я думаю, что он копирует сообщения. Если он не копирует, он должен всегда проверять, все ли подписчики получают сообщения? Кроме того, если есть фильтр, он должен проверить только этих подписчиков на удаление сообщения. Я думаю, что копирование и применение простых затрат на реализацию потребляют меньше, чем без копирования.

Article

Смежные вопросы