一:activeMq介绍
ActiveMQ是一种开源的,实现了JMS1.1规范的,面向消息(MOM)的中间件,为应用程序提供高效的、可扩展的、稳定的和安全的企业级消息通信,下载地址是:http://activemq.apache.org/download.html,下载后启动activemq.bat就可以,activemq默认端口号是8161,可以在confg/jetty.xml处修改。
二:activeMq使用方法
activeMq 使用java多线程经典的生产者和消费者来处理。
1:首先创建生产者
// 连接工厂 jms 用它创建连接connectionFactory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER,ActiveMQConnection.DEFAULT_PASSWORD, ActiveMQConnection.DEFAULT_BROKER_URL);// jms 连接Connection connection = connectionFactory.createConnection();// 一个发送或接收消息的线程Session session= connection.createSession(Boolean.TRUE,Session.AUTO_ACKNOWLEDGE);// 消息目的地,消息发送给谁Destination destination = session.createQueue("threadMsg");// 得到生产者对像MessageProducer messageProducer=session.createProducer(destination);//设置消息对像TextMessage message = session.createTextMessage("ActiveMq 发送的消息" + index);//发送producer.send(message);
消费发送后,可以在activeMq后台查询
点击threadMsg可以查看未读消息列表,并且可以看未读消息的详细内容
2:创建消息消费者
// 连接工厂 jms 用它创建连接ConnectionFactory connectionFactory connectionFactory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER, ActiveMQConnection.DEFAULT_PASSWORD, ActiveMQConnection.DEFAULT_BROKER_URL);// jms 连接 Connection connection=connectionFactory.createConnection();//创建操作连接Session session=connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);// 获取操作连接 threadMsg 需要和生产者发送消息时的值对应Destination destination=session.createQueue("threadMsg");// 消息接收MessageConsumer =messageConsumersession.createConsumer(destination);while (true) {//1秒去读取一次消息 // 设置接收者接收消息的时间,为了便于测试,这里谁定为100s TextMessage message = (TextMessage) messageConsumer.receive(100000); if (null != message) { log.info(threadName+" 收到消息 " + message.getText()); } else {// break; } Thread.sleep(1000);}
注意:由于这个项目没有使用maven,可能出现环境不一样,导致logg4j等包无法找到的情况。