ActiveMQ生产者创建和非活动期间
我有一个关于ActiveMQ和制作人的问题 我是否应该为每次发送的消息创建一个生产者?还是一直使用同一个?为每次发送创建制作人是否会对性能产生影响ActiveMQ生产者创建和非活动期间,activemq,producer-consumer,Activemq,Producer Consumer,我有一个关于ActiveMQ和制作人的问题 我是否应该为每次发送的消息创建一个生产者?还是一直使用同一个?为每次发送创建制作人是否会对性能产生影响 在一段时间的不活动之后,连接也会断开,但我不知道这是否与此相关,有什么建议吗?是的,创建制作者会对性能产生一点影响,特别是当代理位于另一台机器上时(客户需要与代理对话以创建制作者) 在本答案的其余部分中,我假设您使用Java/JMS与AMQ对话 如果您有一个非常简单的程序,您当然可以“重用”您的生产者,创建一个“空”目的地,并在发送时设置目的地 您可
在一段时间的不活动之后,连接也会断开,但我不知道这是否与此相关,有什么建议吗?是的,创建制作者会对性能产生一点影响,特别是当代理位于另一台机器上时(客户需要与代理对话以创建制作者) 在本答案的其余部分中,我假设您使用Java/JMS与AMQ对话 如果您有一个非常简单的程序,您当然可以“重用”您的生产者,创建一个“空”目的地,并在发送时设置目的地 您可以做的是使用whichpool连接、会话和生产者。我认为包装器类将帮助您 实际上,您可以像这样使用PooledConnectionFactory(psuedocode): 这意味着您不必担心关闭/打开的会话、连接等。这就是Spring Framework中广泛使用的
JmsTemplate
的工作方式(当然,使用池/缓存资源时工作得更好)
另请查看页面,了解性能提示和技巧。谢谢,这是有用的信息。
cf = new PooledConnectionFactory(myOriginalConnectionFactory)
sendMessage(cf)
sendMessage(cf)
sendMessage(cf)
SendMessage(connectionFactory)
conn = connectionFactory.CreateConnection
sess = conn.CreateSession
prod = sess.createProducer
msg = sess.createMessage
prod.send(msg)
prod.close
sess.close
conn.close