Легкий вес, обменивающийся сообщениями (асинхронные вызовы) в Java

Кажется, что в настоящее время ведет себя как ожидалось.

Вся проблема обсуждалась на быстрых форумах: Назначение себя в расширениях протокола

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

[110 ]

Однако дискуссия как бы провалилась.

BLOCKQUOTE>

9
задан Sergey Mikhanov 17 October 2008 в 08:53
поделиться

4 ответа

Вам нужен какой-либо вид персистентности (например, если Ваша JVM умирает промежуточная обработка тысячи сообщений), и Вам нужны сообщения для пересечения к какому-либо другому JVMs?

Если все в единственной JVM и Вы не должны волноваться о транзакциях, восстановлении или потере сообщений, если JVM умирает - затем, как Chris говорит выше, Исполнители в порядке.

ActiveMQ довольно легок; можно использовать его в единственной JVM только без персистентности, если Вы хотите; можно затем включить транзакции / персистентность / восстановление / дистанционная работа (работающий с несколькими JVMs) как и когда Вам нужен он. Но если Вам не нужна ни одна из этих вещей затем, его излишество - просто использует Исполнителей.

Случайно другая опция, если Вы не уверены, каким шагам, возможно, понадобились бы персистентность/надежность или выравнивание нагрузки к нескольким JVMs, будет состоять в том, чтобы скрыть использование промежуточного программного обеспечения полностью, таким образом, можно переключиться между в память очереди SEDA с исполнителями к JMS/ActiveMQ как и когда Вы должны.

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

4
ответ дан 4 December 2019 в 20:26
поделиться

Действительно легкий? Исполнители.:-) Таким образом, Вы настраиваете исполнителя (B, в Вашем описании), и просто отправляет задачи исполнителю.

4
ответ дан 4 December 2019 в 20:26
поделиться

Я думаю, что Apache Camel удовлетворит все ваши потребности. Он работает в JVM и поддерживает стиль SEDA ( http://camel.apache.org/seda.html ) и упрощенную маршрутизацию. Может использоваться отдельно или с пружиной, с поставщиком JMS или другими адаптерами.

2
ответ дан 4 December 2019 в 20:26
поделиться

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

UPDATE: однако я не уверен, поддерживает ли он задержки с повторной доставкой (проблема "мертвой очереди"). Я бы счел это удобным даже для легких провайдеров. Но я думаю, что это возможно с помощью комбинации запроса MessageSelector и свойств сообщения.

1
ответ дан 4 December 2019 в 20:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: