Должен ли я использовать только одну сессию в своем приложении на основе HornetQ?

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

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

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

1 ответ

Решение

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

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

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

Другие вопросы по тегам