我应该在基于HornetQ的应用程序中只使用一个Session吗?

时间:2010-12-02 14:14:12

标签: java session hornetq

在基于HornetQ引擎的应用程序中,我打算创建多个生产者和消费者。 我了解到,由于this page,我应该尽可能多地重用资源。

这是否意味着,对于我的应用程序,我应该创建一个且恰好一个ConnectionFactory,一个Connection,一个Session然后(使用此Session对象)创建尽可能多的生产者/消费者?

这应该不难,但我不确定这是否是正确的方法。

1 个答案:

答案 0 :(得分:10)

最小资源使用的最佳经验法则是尽可能使用最少的构造,同时保持线程安全。因此:

  1. 连接工厂是线程安全的:每个JMS服务器一个(或每个目标类型的主机和队列每个JMS服务器一个)
  2. 连接是线程安全的:根据应用程序架构,您可以使用一个连接,但我不会向后弯腰来执行此操作。
  3. 会话下面的会话和所有构造都是线程安全:每个并发线程需要一个会话(如果按这种方式考虑,则需要每个事务)。
  4. 基于此,希望您可以在优雅的架构和低资源利用率之间取得平衡。