Очереди сообщений в основном используются для выполнения асинхронных задач на сервере. & Недавно я прочитал об инфраструктуре Executor, которая также выполняет эту же процедуру. & управляет потоками для выполнения асинхронных задач. Может ли кто-нибудь сказать мне разницу между ними?Разница между инфраструктурой Executor и очередями сообщений, такими как JMS
ответ
Основное отличие заключается в том, что инфраструктура Executor предназначена для выполнения внутрипрограммной задачи и выполнения, тогда как JMS предназначена для организации очередей между различными программами (обычно) на разных машинах.
Другие различия включают в себя:
JMS очереди (или может быть) стойкими, где, как исполнитель, и так далее в памяти только.
Очереди JMS могут (я считаю) использоваться в транзакционной системе, где в качестве Исполнителя и т. Д. Не может. (В частности, это является следствием упорного/непостоянного различия.)
Так это означает, что, если мое приложение не распространяется, я могу использовать рамки палача.
Может быть ...
Для примера я хочу, чтобы закодировать систему уведомления фба стиля & публиковать подписываться будет использование рамок исполнителя быть подходящим для этого? Я предполагаю, что код будет на одной машине в одном db.
Проблема в том, что стандартные реализации инфраструктуры Executor не помещают очереди задач в базу данных. Это просто легкие массивы данных в памяти. Они не сохраняют, если ваше приложение перезапускается.
Теперь, я полагаю, может написать свой класс Исполнителя/Исполнителя, который помещает очередь в базу данных. Но зачем беспокоиться? Было бы проще использовать JMS или подобное ...
Так что это означает, что если мое приложение не будет распространено, я могу использовать инфраструктуру Executor. Для экземпляра я хочу закодировать систему уведомлений в стиле fb и опубликовать подписку, будет ли для этого использоваться использование структуры исполнителя? Я предполагаю, что код будет на одном компьютере в одном db – underdog
. Структура jms также может поддерживать отказоустойчивость, балансировку нагрузки, повторить попытку неудачи, переместить в другую очередь на слишком много сбоев ... –
... ни один из которых не делает много смысла в сценариях, для которых предназначены исполнители. –