Как заставить сервисную шину Azure работать в режиме FIFO? - PullRequest
0 голосов
/ 14 ноября 2018

Мы не используем темы для служебной шины Azure (что, как я понимаю, предъявляет дополнительные требования для поддержки заказа , и, насколько я понимаю, каждая очередь должна вернуться к работе в режиме FIFO, однако из анализанаши журналы только на сегодня, у нас было 384 из 15442 сообщений, удаленных в другом порядке по сравнению с тем, когда они были помещены в очередь

Чтобы проиллюстрировать на примере, у нас было два сообщения, d4350a6e68ad4c9fb1fb9ccebd766590 и 0e19fbd29ffd4c4693efudd;-11-14 09: 27: 31.8870000 и 2018-11-14 09: 27: 35.5950000 соответственно (поэтому 0e ... было на 4 секунды позже, чем d4 ...) Однако они были сняты с производства в 2018-11-14 09:30: 12.0320000 и 2018-11-14 09: 29: 57.4850000 соответственно (поэтому d4 ... было на 15 секунд позже 0e ...). За этот промежуток времени у нас был только один активный хост, выполняющий как постановку в очередь, так и извлечение из очереди.

Несмотря на то, что время для этого относительно близко с человеческой точки зрения, мы видели

Как я понял, очередьну что ж, очереди, я немного удивлен, что вижу такое поведение - нужно ли мне делать какую-то дополнительную магию, чтобы гарантировать, что они сняты с очереди в том порядке, в котором они были поставлены в очередь?

Для справкикод, который ставится в очередь, выглядит примерно так:

var brokeredMessage = new BrokeredMessage(objectToQueue, new DataContractJsonSerializer(typeof(T)));            

var queueClient = QueueClient.CreateFromConnectionString(connectionString);
queueClient.RetryPolicy = new RetryExponential(TimeSpan.FromSeconds(2), TimeSpan.FromSeconds(5), 5);
queueClient.Send(brokeredMessage);

И мы снимаем очередь с веб-задания Azure, используя триггер служебной шины

1 Ответ

0 голосов
/ 14 ноября 2018

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

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

...