Должен ли я использовать только одну сессию в моем приложении на основе HornetQ? - PullRequest
2 голосов
/ 02 декабря 2010

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

Значит ли это, что для моего приложения я должен создать одну и только одну ConnectionFactory, одно Connection, одну сессию и затем (используя этот объект Session) создать столько производителей / потребителей, сколько я хочу?

Это не должно быть сложно, но я не уверен, что это правильный подход.

1 Ответ

10 голосов
/ 02 декабря 2010

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

  1. Фабрики соединений являются поточно-ориентированными: по одному на сервер JMS (или по одному на сервер JMS на тип назначения для тем и очередей)
  2. Соединения являются поточно-ориентированными: в зависимости от архитектуры приложения вы можете использовать одно соединение, но я бы не стал наклоняться назад, чтобы сделать это.
  3. Сеансы и все конструкции ниже сеанса НЕ поточно-безопасны: вам потребуется один сеанс на параллельный поток (или на транзакцию, если вы так думаете).

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

...