Yoyakey Ответов: 2

Является ли многопоточность лучшим решением для обработки сообщений на основе MQ?


Привет,

Я должен обрабатывать сто тысяч запросов сообщений ежедневно через MQ. Я хочу попробовать многопоточность для чтения сообщения MQ и ответа (записи ответа на MQ). Это непрерывный (24X7) процесс. Могу ли я использовать многопоточность .NET и поможет ли она обрабатывать более эффективно? Может ли кто-нибудь предоставить какой-нибудь образец источника для обработки такого рода обработки при использовании многопоточности?

Заранее спасибо,
Йоякей

Что я уже пробовал:

Я открыл две нити. Я обработал первое сообщение через поток 1. Второе сообщение через поток 2. я не могу использовать поток 1 для третьего сообщения.

Sergey Alexandrovich Kryukov

В этой идее нет никакого смысла. Конечно, вам нужно использовать многопоточность по многим причинам и многими способами. Но обработка разных сообщений в разных потоках не имеет никакого оправдания. Например, вы можете выделить поток для каждого канала связи, и только если у вас есть фиксированное предопределенное количество каналов. И гораздо больше пользы. Остальная часть вопроса слишком расплывчата для обсуждения.
—СА

2 Ответов

Рейтинг:
0

CHill60

Как сказал СА в своем комментарии, это слишком расплывчато, чтобы обсуждать разумно.

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

Честно говоря, 100 000 сообщений за 24 часа-это не особенно большой объем. Все зависит от того, насколько велики эти сообщения. Лучший подход-найти оптимальную конфигурацию WebSphere для ваших требований
Здесь я отсылаю вас к предоставленным ресурсам поддержки разработчиков, например:
Настройка и настройка WebSphere MQ для обеспечения производительности в Windows и UNIX[^]
Топ-15 лучших практик WebSphere MQ[^]
WebSphere MQ : портал поддержки IBM[^]


Рейтинг:
0

Rob Philpott

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

Имеет ли это смысл - другой вопрос. 100 000 сообщений в день - это примерно 1 секунда, не особенно высокая скорость. Первое, что нужно рассмотреть, - это то, занимает ли ваша обработка среднего сообщения больше секунды. Если это так, вы можете оказаться в ситуации, когда ваша обработка не может идти в ногу с входящими сообщениями. Это плохо, очереди будут переполняться-многопоточность здесь была бы хороша.

Однако если ваша обработка занимает всего несколько миллисекунд, то от многопоточности ничего не получится.

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