Сервисный автобус пакетной обработки продюсеров против Kafka

Kafka предоставляет функцию, с помощью которой мы можем указать размер партии производителя. Это размер сообщений, которые могут быть отправлены в очередь одновременно. Преимущество в том, что мы можем уменьшить количество сетевых вызовов в очереди. Есть ли у нас что-нибудь подобное в Service Bus? Единственная пакетная обработка, которую выполняет служебная шина, — это доставка сообщения в очередь. Но это не уменьшает количество выполняемых вызовов ввода-вывода.

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

Какой язык программирования вы используете? Вот пример для Python stackoverflow.com/questions/68639192/… , для API для остальных Learn.microsoft.com/en-us/rest/api/servicebus/… и для .NET Learn. microsoft.com/en-us/azure/service-bus-messaging/…

Anupam Chand 31.03.2024 12:15
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
57
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

С помощью .NET SDK вы можете создавать ServiceBusMessageBatch. При создании пакета можно передать его CreateMessageBatchOptions, чтобы указать максимальный размер пакета. Например

var options = new CreateMessageBatchOptions { MaxSizeInBytes = 1_024 };
using var messageBatch = await sender.CreateMessageBatchAsync();

Создаст пакет размером до 1024 байт. Если не указано иное, по умолчанию пакет будет иметь максимальный размер сообщения для используемого уровня пространства имен: 256 КБ для стандартного и 100 МБ для премиум-класса.

Я пытаюсь понять, если у меня размер сообщения 100 МБ, я смогу иметь в пакете только одно сообщение?

SQLProfiler 01.04.2024 13:13

Что делать, если у меня нет всех сообщений заранее? Что, если я получаю сообщения одно за другим? Kafka Producer, кажется, буферизует и отправляет одновременно? Получим ли мы такое же поведение в случае клиента служебной шины?

SQLProfiler 01.04.2024 13:18

Вы можете хранить свой пакетный объект до тех пор, пока не будете готовы его отправить.

Sean Feldman 01.04.2024 15:49

Буферизация Kafka неявно реализована внутри клиента. Пакеты служебной шины являются явными. Это не одно и то же, и Service Bus не предлагает эквивалента. Как упомянул Шон, для «у нас нет всех сообщений» вашему приложению необходимо будет создать пакет и хранить его в памяти до тех пор, пока он не заполнится или пока вы не захотите отправить.

Jesse Squire 01.04.2024 15:50

Другие вопросы по теме