Каков хороший способ реализации пула объектов в Camel? - PullRequest
0 голосов
/ 26 января 2012

У меня есть несколько верблюжьих маршрутов, которые вызывают внешний веб-сервис, мне нужно управлять пулом сеансов для этого веб-сервиса, держать несколько открытых сеансов и повторно использовать бездействующие каждый раз, когда маршрут верблюда нужен.* Что является "более безопасным": - управление / сохранение данных сеанса в БД с использованием, например, JDBC, или - реализация статического или одноэлементного пула с использованием, например, пула apache-commons

Ответы [ 2 ]

1 голос
/ 05 февраля 2012

Ваш сеанс в WebService представлен некоторым идентификатором SessionID, который вам нужно сохранить / pool. Так что вам в основном нужно объединить ответ WebService (или его часть), который возвращается операцией входа в систему. Этот ответ может остаться в пуле не более, чем время ожидания сеанса на стороне WebService.

Если ваш сеанс WebService действителен в течение нескольких дней на стороне сервера, и вы хотите восстановить открытые сеансы, например, после. сбой на стороне клиента, или вы хотите разделить открытые сессии между несколькими клиентами через БД, тогда я бы использовал БД.

В противном случае, если у вас есть только один клиент, или все в порядке, что у каждого клиента есть свой небольшой кэш, я бы использовал пул в памяти. В качестве альтернативы вы можете подумать о совместном использовании этого пула между клиентами / несколькими приложениями с помощью Ehcache / Terracotta . И, между прочим, эти кэши позволяют вам выгружать содержимое содержимого пула на диск, что может быть хорошей альтернативой готовой БД.

0 голосов
/ 26 января 2012

, если вы говорите о пуле соединений JDBC, то я бы рекомендовал использовать DBCP или C3P0 . Если вы говорите о пулировании объектов POJO, посмотрите на Пул объектов Spring *

...