Должен ли я использовать только одну сессию в своем приложении на основе HornetQ?
В приложении на основе движка HornetQ я намереваюсь создать несколько производителей и потребителей. Я узнал, что я должен максимально использовать ресурсы благодаря этой странице.
Означает ли это, что для моего приложения я должен создать одну и только одну ConnectionFactory, одно Connection, одну сессию и затем (используя этот объект Session) создать столько производителей / потребителей, сколько я хочу?
Это не должно быть сложно, но я не уверен, что это правильный подход.
1 ответ
Наилучшее практическое правило для минимального использования ресурсов - использовать как можно меньше конструкций, оставаясь при этом безопасным для потоков. Соответственно:
- Фабрики соединений являются поточно-ориентированными: по одному на сервер JMS (или по одному на сервер JMS на тип назначения для тем и очередей)
- Соединения являются поточно-ориентированными: в зависимости от архитектуры приложения вы можете использовать одно соединение, но я бы не стал наклоняться назад, чтобы сделать это.
- Сеансы и все конструкции ниже сеанса НЕ являются поточно-ориентированными: вам потребуется один сеанс на параллельный поток (или на транзакцию, если вы думаете об этом таким образом).
Исходя из этого, мы надеемся, вы сможете найти баланс между элегантной архитектурой и низким использованием ресурсов.