[英]JMS Producer Best Practices
我想将消息发送到 servlet 顶部的过滤器中的队列。
public class Filter implements javax.servlet.Filter {
@Inject
JMSContext context;
@Resource
private Queue queue;
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
long start = new Date().getTime();
filterChain.doFilter(servletRequest, servletResponse);
JMSProducer producer = context.createProducer();
...
考虑性能和资源利用率,最好在@PostConstruct
方法中创建一次,或者没关系,我可以在每个请求中创建它?
相对而言,少做通常需要更少的资源并且速度更快,因此创建一次JMSProducer
用它几乎肯定会比每次都创建它对您的用例“更好”。
然而,值得注意的是,对于大多数 JMS 实现,生产者是轻量级的 object,因此缓存/重用它并不像其他对象(例如Connection
或JMSContext
)那么重要。 这种“优化”可能没有统计上的显着影响,但只有仔细测试才能清楚地说明这一点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.