2010-12-02 1 views
2

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

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

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

ответ

9

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

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

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

+0

стороны q, безопасно ли создавать 2x производителей с одного сеанса и использовать их в разных потоках потенциально одновременно? – 2011-01-03 00:45:48

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

  • Нет связанных вопросов^_^