美文网首页
生产者如何同步或异步发送数据

生产者如何同步或异步发送数据

作者: 长孙俊明 | 来源:发表于2019-10-21 15:31 被阅读0次

    同步发送

    没有使用事务并且 生产者以PERSISTENT传送模式发送消息
    在这种情况 下, send方法都是同步的,并且一直阻塞直到ActiveMQ发回确认消息:消息已经存储在持久性数据存储中。这种确认机制保证消息不会丢失,但会造成 生产者阻塞从而影响反应时间。

    异步发送

    启用事务并且 生产者以PERSISTENT传送模式发送消息
    异步发送的方式不止以上一种,还有其他好几种,比如通过URL方式也可以,在url后追加 jms.useAsyncSend=true

    private static final String brokerURL = "tcp://192.168.10.55:61616?jms.useAsyncSend=true";
    

    第三种方式

    // 异步方式发送某条消息
                    ((ActiveMQMessageProducer) producer).send(message, new AsyncCallback() {
    
                        @Override
                        public void onException(JMSException exception) {
                            // TODO Auto-generated method stub
    
                        }
    
                        @Override
                        public void onSuccess() {
                            try {
                                System.out.println(Thread.currentThread().getName() + " 异步发送完成:messageId: "
                                        + message.getJMSMessageID() + " " + text);
                            } catch (JMSException e) {
                            }
                        }
                    });
    

    相关文章

      网友评论

          本文标题:生产者如何同步或异步发送数据

          本文链接:https://www.haomeiwen.com/subject/rxmcmctx.html