繁体   English   中英

JMS 生产者最佳实践

[英]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,因此缓存/重用它并不像其他对象(例如ConnectionJMSContext )那么重要。 这种“优化”可能没有统计上的显着影响,但只有仔细测试才能清楚地说明这一点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM