jms是提供消息服务的技术规范,规定了消息服务过程的数据格式与交互流程。
mq是消息服务的提供者,是面向消息中间件。mq可以基于jms规范,也可以根据其他的消息服务规范。
第一次使用。
1 下载activemq。运行/bin下面的activemq.bat.可以通过http://localhost:8161/admin/ 访问,默认用户密码为admin。
2 java demo。
jmsSender,消息的生产者。
第一步创建一个ConnectionFactory 通过刚才启动的mq服务,new ActiveMQConnectionFactory("tcp://127.0.0.1:61616");
第二步通过创建的ConnectionFactory创建一个Connect连接。connectionFactory.createConnection(),启动连接,connect.start();
第三步创建Session,connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);
第四步创建Queue或Destination,Queue实现了Destination接口。 session.createQueue("Test");
第五步创建MessageProducer。session.createProducer(queue); 设置生产者的类型 producer.setDeliveryMode(DeliveryMode.PERSISTENT);
第六步创建Message。session.createObjectMessage(); 创建的是objectMessage。
第六步通过生产者发送消息。 producer.send(message);
第七步提交会话 session.commit(); 关闭会话 session.close(); 关闭连接 connection.close();
jmsReciver,消息的消费者。
前四 步与生产者一致
第五步创建MessageConsumer,session.createConsumer(queue);
第六步监听消息
consumer.setMessageListener(new MessageListener() {public void onMessage(Message msg) { ObjectMessage message = (ObjectMessage) msg; }});
第七步 提交会话 session.commit(); 关闭会话 session.close(); 关闭连接 connection.close();
TextMessage:普通字符串消息,包含一个String。
ObjectMessage:对象消息,包含一个可序列化的Java 对象
BytesMessage:二进制数组消息,包含一个byte[]。
XMLMessage: 一个XML类型的消息。