ActiveMQ持久化机制代码实例

  

这篇文章主要介绍了ActiveMQ持久化机制代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

  

用户注册成功后发短信提醒

  http

同步   mq

异步   

<强> JMS中两种通讯模式:

  

发布订阅一对多主题去过消费者集群的话都会消费

  

消息队列点对点去排队过消费者集群的话均摊消费

  

场景问题:服务器断电重启,未被消费的消息是否会在重启之后消费?

  

<强>两种模式:

  

1,非持久性,服务器断电(关闭)之后,使用非持久性模型时,没有被消费的消息不会继续消费,全部丢失。程序会报一个连接关闭异常,停止运行。继续启动服务器运行程序,不会接收任何消息。

  

2,持久性,服务器断电(关闭)之后,使用持久性模型时,没有被消费的消息会继续消费,程序也会报连接关闭异常,但再次启动服务器和程序后,接收方还能继续原来的消息再次接收。

        包com.toov5.producer;      进口javax.jms.Connection;   进口javax.jms.DeliveryMode;   进口javax.jms.JMSException;   进口javax.jms.MessageProducer;   进口javax.jms.Queue;   进口javax.jms.Session;   进口javax.jms.TextMessage;      进口org.apache.activemq.ActiveMQConnectionFactory;         公开课producerTest {//mq通讯地址   私有静态字符串url=皌cp://192.168.91.6:61616”;//队列名称   私有静态字符串queueName=" toov5_queue”;      公共静态void main (String [] args)抛出JMSException {//先创建连接工厂密码默认采用管理员管理   ActiveMQConnectionFactory ActiveMQConnectionFactory=new ActiveMQConnectionFactory (url);//创建连接   连接连接=activeMQConnectionFactory.createConnection ();//启动连接   connection.start ();//创建会话=连接会话对话。createSession (false, Session.AUTO_ACKNOWLEDGE);//是否需要事务方式提交消费方式默认自动签收//拿到会话创建目标创建队列   队列的队列=session.createQueue (queueName);//创建生产者   MessageProducer生产商=session.createProducer(队列);//生产者生产的消息是放在这个队列里面的   producer.setDeliveryMode (DeliveryMode.PERSISTENT);//默认非持久化的设置持久化   for (int i=1;我& lt;10;我+ +){//拿到队列创建消息   TextMessage TextMessage=会话。createTextMessage(“消息内容”+ i);//发送消息   producer.send (textMessage);   }//关闭连接   connection.close ();   System.out.println(“消息发送完毕”);   }   }      

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

ActiveMQ持久化机制代码实例