几个重要的网站:
1: https://blog.csdn.net/feicongcong/article/details/77203700
2:https://blog.csdn.net/qq_20597727/article/details/81416812
3:https://blog.csdn.net/qinweili751/article/details/80620104
发送消息与接收消息
一:发送消息 生产者 producer
1:创建连接工厂-----------------》new ActiveMQConnectionFactory("tcp://192.168.126.128:61616");
2:创建连接-------》connectionFactory.createConnection();
3:打开连接------》 connection.start();
4:创建会话------》connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
5:创建队列----》session.createQueue("Atguigu");【名字任意起】
6:创建生产者----》session.createProducer(queue);
7:创建消息对象----》new ActiveMQTextMessage();
//activeMQTextMessage.setText("hello ActiveMq!");//纯文本数据
//new ActiveMQMapMessage();//map集合
8:发送消息---》 producer.send(activeMQTextMessage);
9:关闭连接---》 producer.close(); connection.close();
----------------------------------二:消息接收方
1:创建连接工厂:---》new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER,ActiveMQConnection.DEFAULT_PASSWORD,"tcp://192.168.126.128:61616");
2:创建连接-------》connectionFactory.createConnection();
3:打开连接------》 connection.start();
4:创建会话------》connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
5:创建队列----》session.createQueue("Atguigu");【名字任意起】注意:消费者的队列名字必须与生产者一致
6:创建消费者--》 session.createConsumer(nb);
consumer.setMessageListener:在消费者中设置监听器
consumer.setMessageListener(new MessageListener() {
@Override
public void onMessage(Message message) {
if(messageinstanceof MapMessage){
try {
String sanfu = ((MapMessage) message).getString("sanfu");
String lushun = ((MapMessage) message).getString("lushun");
System.out.println(sanfu +" " + lushun);
}catch (JMSException e) {
e.printStackTrace();
}
一定注意:消息的接收方一定不能关闭任何连接
--------------------------------------------------------------
要知道queque中的各项都是什么意思
1:Number Of Pending Messages等待消费的消息 这个是当前未出队列的数量。可以理解为总接收数-总出队列数
2:Number Of Consumers消费者 这个是消费者端的消费者数量
3:Messages Enqueued进入队列的消息 进入队列的总数量,包括出队列的。 这个数量只增不减
4:Messages Dequeued出了队列的消息 可以理解为是消费者消费掉的数量
总结:
当有一个消息进入这个队列时,等待消费的消息是1,进入队列的消息是1。当消息消费后,等待消费的消息是0,进入队列的消息是1,出队列的消息是1.在来一条消息时,等待消费的消息是1,进入队列的消息就是2.
网友评论