2013-03-30 2 views
3

Я пытаюсь реализовать производителя сообщений за интерфейсом REST. Производитель сообщения использует шаблон request/reply. При чтении документации для производителя Camel следует отметить, что для каждого приложения необходимо создать только один производитель.Является ли Camel ActiveMQ производитель Template thread безопасным?

Безопасна ли нить производителя, чтобы я мог вызвать метод отправки из нескольких потоков? Будет ли она работать должным образом, когда несколько параллельных запросов ждут своих связанных ответов? Как это лучше всего использовать с Spring, Tomcat и Jersey?

спасибо.

ответ

3

Да и шаблон производителя и потребителя в Apache Camel является потокобезопасным.

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

например, REST и JMS работают несколько иначе. Где JMS будет использовать отдельные очереди сообщений для ответов на пикап, у которых есть JMSCorrelationID, который используется для корреляции ответных сообщений.

Где, как правило, REST - это вызов синхронизации из-за синхронности HTTP. Но это зависит от базового компонента, так как некоторые поддерживают асинхронную связь на http-клиенте, например, верблюжьей линией, верблюжьим ахчем и т. Д.

+0

Спасибо Клаус за то, что подтвердил, что для меня я подозревал, что это было, но я должен был быть Конечно, я работаю в параноидальном мире финансовых систем. Да, я знал об отклонениях в ответе на запрос между классической REST-ориентированной архитектурой и Camel/ActiveMQ. Мой интерфейс REST фактически использует сочетание типов ответов синхронизации и асинхронного ответа в зависимости от производительности интегрированной системы (систем) в фоновом режиме и настроек клиента, представленных в заголовках. Camel просто великолепна, как и ваша книга [link] (http://amzn.com/1935182366). Спасибо. –

+0

Я обновил javadoc на ProducerTemplate и ConsumerTemplate с запиской о безопасности потоков. Таким образом, люди могут легче найти эту информацию в будущем из javadoc API –

+0

Привет @ClausIbsen, я обнаружил, что вызов producertemplate.requestBodyAndHeaders («http4: // host: port/endpoint» ..) с несколькими чередующимися потоками создает много пулаHttpClientConnectionManager , Это заставляет меня думать, что шаблон производителя действительно потокобезопасен. –

Смежные вопросы