ActiveMQ消息中间件-hello world
生产者
package com.wuk.mq;
import java.util.concurrent.TimeUnit;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnectionFactory;
/**
* 生产者
* @author Administrator
*
*/
public class Send {
public static void main(String[] args) throws Exception {
//1、创建工厂连接对象,需要制定ip和端口号 默认端口号为tcp://127.0.0.1:61616
ConnectionFactory connectionFactory=new ActiveMQConnectionFactory
(ActiveMQConnectionFactory.DEFAULT_USER,
ActiveMQConnectionFactory.DEFAULT_PASSWORD,
"tcp://127.0.0.1:61616");
//2、使用连接工厂创建一个连接对象
Connection connection=connectionFactory.createConnection();
//3、开启连接
connection.start();
//4、使用连接对象创建会话(session)对象
//参数1 是是否启用事务 参数2 签收模式,一般是自动签收
Session session=connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE);
//5、使用会话对象创建目标对象,包含queue和topic(一对一和一对多)
Destination destination=session.createQueue("test-queue");
//6、使用会话对象创建生产者对象
MessageProducer producer=session.createProducer(destination);
//设置持久化和非持久化状态
//producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
//7、使用会话对象创建一个消息对象
for(int i=0;i<10;i++){
TextMessage textMessage= session.createTextMessage("我是消息内容"+i);
//8、发送消息
//producer.send(destination, message, deliveryMode, priority, timeToLive);
//第一个参数是目标地址
//第二个参数是具体的数据信息
//第三个参数是传输数据的模式
//第四个参数是优先级
//第五个参数是消息的过期时间
producer.send(destination,textMessage);
TimeUnit.SECONDS.sleep(1);
}
//9、关闭资源
if(producer!=null){
producer.close();
}
if(session!=null){
session.close();
}
if(connection!=null){
connection.close();
}
}
}
消费者
package com.wuk.mq;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.MessageConsumer;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnectionFactory;
/**
* 消费者
*
* @author Administrator
*
*/
public class Receive {
public static void main(String[] args) throws Exception {
// 1、创建工厂连接对象,需要制定ip和端口号 默认端口号为tcp://127.0.0.1:61616
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
ActiveMQConnectionFactory.DEFAULT_USER,
ActiveMQConnectionFactory.DEFAULT_PASSWORD,
"tcp://127.0.0.1:61616");
// 2、使用连接工厂创建一个连接对象
Connection connection = connectionFactory.createConnection();
// 3、开启连接
connection.start();
// 4、使用连接对象创建会话(session)对象
// 参数1 是是否启用事务 参数2 签收模式,一般是自动签收
Session session = connection.createSession(Boolean.FALSE,
Session.AUTO_ACKNOWLEDGE);
// 5、使用会话对象创建目标对象,包含queue和topic(一对一和一对多)
Destination destination = session.createQueue("test-queue");
// 6、使用会话对象创建消费者对象
MessageConsumer consumer = session.createConsumer(destination);
while(true){
TextMessage textMessage=(TextMessage) consumer.receive();
System.out.println("消费数据"+textMessage.getText());
}
}
}
还没有评论,来说两句吧...