ActiveMQ安装配置和使用简例
2015-09-02 08:49
399 查看
本文作者:Zhang Phil
原文链接:/article/1810676.html
ActiveMQ安装配置和使用简例
ActiveMQ是一套JMS(Java Message Service)开源消息服务实现的组件。以Windows操作系统为例,本文简述了ActiveMQ的安装配置和使用简例。消息服务是互联网应用的最基本功能,只要是互联网应用,就少不了消息通信。而ActiveMQ是一个相对比较成熟稳定的JMS消息服务组件,安装简单,使用简单,可以快速上手。很容易就实现当下很多应用的消息推送、用户反馈等消息服务功能。
安装和使用方法
(1)首先到ActiveMQ官方网站下载最新发布的ActiveMQ版本:http://activemq.apache.org/download.html
以ActiveMQ 5.12.0为例,apache-activemq-5.12.0-bin.zip的下载链接地址:http://www.apache.org/dyn/closer.cgi?path=/activemq/5.12.0/apache-activemq-5.12.0-bin.zip
(2)下载后,将这个压缩包解压,找到解压目录下的 …\apache-activemq-5.12.0-bin\apache-activemq-5.12.0\bin\win64\activemq.bat 文件,(32位计算机则选择win32目录下的activemq.bat)运行之。
其中 …\apache-activemq-5.12.0-bin\apache-activemq-5.12.0\activemq-all-5.12.0.jar将在后面的Java程序中作为引用的库包导入使用。
注意!运行activemq.bat前提需要java运行环境。启动成功后如图所示:
ActiveMQ默认绑定本地端口61616,如果一切顺利,启动ActiveMQ成功后,可以执行命令:
查看到端口61616的状态如图:
表明ActiveMQ消息服务器端启动已经成功,已经在端口61616收发消息。
(3)下面就可以使用ActiveMQ在自己的Java程序中编写代码收发消息。以两个java应用程序为例,一个单独的Sender.java作为消息的发送方,另外一个Receiver.java作为消息的接收方。
Sender.java
Receiver.java
编译上述两个java文件,需要导入ActiveMQ的jar库包。将(2)中的…\apache-activemq-5.12.0-bin\apache-activemq-5.12.0\activemq-all-5.12.0.jar作为库包导入进来。
ActiveMQ的基本配置
ActiveMQ默认的系统配置网页是: http://localhost:8161/admin/
用户名和密码默认均是: admin
原文链接:/article/1810676.html
ActiveMQ安装配置和使用简例
ActiveMQ是一套JMS(Java Message Service)开源消息服务实现的组件。以Windows操作系统为例,本文简述了ActiveMQ的安装配置和使用简例。消息服务是互联网应用的最基本功能,只要是互联网应用,就少不了消息通信。而ActiveMQ是一个相对比较成熟稳定的JMS消息服务组件,安装简单,使用简单,可以快速上手。很容易就实现当下很多应用的消息推送、用户反馈等消息服务功能。
安装和使用方法
(1)首先到ActiveMQ官方网站下载最新发布的ActiveMQ版本:http://activemq.apache.org/download.html
以ActiveMQ 5.12.0为例,apache-activemq-5.12.0-bin.zip的下载链接地址:http://www.apache.org/dyn/closer.cgi?path=/activemq/5.12.0/apache-activemq-5.12.0-bin.zip
(2)下载后,将这个压缩包解压,找到解压目录下的 …\apache-activemq-5.12.0-bin\apache-activemq-5.12.0\bin\win64\activemq.bat 文件,(32位计算机则选择win32目录下的activemq.bat)运行之。
其中 …\apache-activemq-5.12.0-bin\apache-activemq-5.12.0\activemq-all-5.12.0.jar将在后面的Java程序中作为引用的库包导入使用。
注意!运行activemq.bat前提需要java运行环境。启动成功后如图所示:
ActiveMQ默认绑定本地端口61616,如果一切顺利,启动ActiveMQ成功后,可以执行命令:
netstat -an|find "61616"
查看到端口61616的状态如图:
表明ActiveMQ消息服务器端启动已经成功,已经在端口61616收发消息。
(3)下面就可以使用ActiveMQ在自己的Java程序中编写代码收发消息。以两个java应用程序为例,一个单独的Sender.java作为消息的发送方,另外一个Receiver.java作为消息的接收方。
Sender.java
import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.DeliveryMode; import javax.jms.Destination; import javax.jms.JMSException; import javax.jms.MessageProducer; import javax.jms.Session; import javax.jms.TextMessage; import org.apache.activemq.ActiveMQConnection; import org.apache.activemq.ActiveMQConnectionFactory; public class Sender { //标明一个消息队列。 private static final String MESSAGE_QUEUE="zhangphil"; //默认的ActiveMQ服务器端绑定的端口。 private static final int PORT=61616; //发送10条消息。 private static final int COUNT = 10; public static void main(String[] args) { // ConnectionFactory :连接工厂,JMS 创建连接 ConnectionFactory connectionFactory; // Connection :JMS 客户端到JMS Provider 的连接 Connection connection = null; // Session: 一个发送或接收消息的线程 Session session; // Destination :消息的目的地 Destination destination; // MessageProducer:消息生产者。 MessageProducer producer; // 构造ConnectionFactory实例对象,此处采用ActiveMq的实现jar connectionFactory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER,ActiveMQConnection.DEFAULT_PASSWORD, "tcp://127.0.0.1:"+PORT); try { // 构造从工厂得到连接对象 connection = connectionFactory.createConnection(); // 启动 connection.start(); // 获取操作连接 session = connection.createSession(Boolean.TRUE.booleanValue(), Session.AUTO_ACKNOWLEDGE); // 获取session注意参数值 zhangphil 是一个服务器的queue,须在在ActiveMq的console配置 destination = session.createQueue(MESSAGE_QUEUE); // 得到消息生成者,发送者 producer = session.createProducer(destination); // 设置不持久化 producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT); // 发送消息。 sendMessage(session, producer); session.commit(); } catch (Exception e) { e.printStackTrace(); } finally { try { if (null != connection) connection.close(); } catch (Throwable ignore) { } } } public static void sendMessage(Session session, MessageProducer producer){ for (int i = 0; i <COUNT; i++) { TextMessage message = null; try { message = session.createTextMessage("zhangphil message "+i); } catch (JMSException e) { e.printStackTrace(); } // 发送消息到目的地方 try { producer.send(message); System.out.println("发送消息:"+message.getText()); } catch (JMSException e) { e.printStackTrace(); } } } }
Receiver.java
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.ActiveMQConnection; import org.apache.activemq.ActiveMQConnectionFactory; public class Receiver { private static final String MESSAGE_QUEUE="zhangphil"; private final static int PORT=61616; public static void main(String[] args) { // ConnectionFactory :连接工厂,JMS 用它创建连接 ConnectionFactory connectionFactory; // Connection :JMS 客户端到JMS Provider 的连接 Connection connection = null; // Session: 一个发送或接收消息的线程 Session session; // Destination :消息的目的地;消息发送给谁. Destination destination; // 消息接收者 MessageConsumer consumer; connectionFactory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER,ActiveMQConnection.DEFAULT_PASSWORD, "tcp://127.0.0.1:"+PORT); try { // 构造从工厂得到连接对象 connection = connectionFactory.createConnection(); // 启动 connection.start(); // 获取操作连接 session = connection.createSession(Boolean.FALSE.booleanValue(), Session.AUTO_ACKNOWLEDGE); // 获取session注意参数值 zhangphil 是一个服务器的queue,只接受相同message queue字段的消息。 destination = session.createQueue(MESSAGE_QUEUE); consumer = session.createConsumer(destination); while (true) { TextMessage message = (TextMessage) consumer.receive(1000); if (null != message) { System.out.println("收到消息: " + message.getText()); } else { //如果不break,receiver将轮询接收消息。 //break,Receiver.java退出。 //break; } } } catch (Exception e) { e.printStackTrace(); } finally { try { if (null != connection) connection.close(); } catch (Throwable ignore) { } } } }
编译上述两个java文件,需要导入ActiveMQ的jar库包。将(2)中的…\apache-activemq-5.12.0-bin\apache-activemq-5.12.0\activemq-all-5.12.0.jar作为库包导入进来。
ActiveMQ的基本配置
ActiveMQ默认的系统配置网页是: http://localhost:8161/admin/
用户名和密码默认均是: admin
相关文章推荐
- truncate 与 delete
- apache配置文件 httpd-vhosts.conf 和 htaccess
- [转]一小时学会用Python Socket 开发可并发的FTP服务器!!
- hdu 2419 离线逆序操作+并查集
- 常用CSS备忘
- 2015.09.01 Java 学习笔记—内存分析精华
- Python自学笔记3-数据类型
- 隐写术入门篇——png文档格式
- 信息学奥林匹克竞赛-复赛无脑操作攻略(文件读写)
- 如何把JavaScript数组中指定的一个元素移动到第一位
- Replication故障
- C#实现 word、pdf、ppt 转为图片
- hdu 5066 Harry And Physical Teacher(Bestcoder Round #14)
- UI中多线程的创建以及定时器与图片的异步加载
- JVM学习笔记
- 隐写术入门篇——图像文件后缀一览表
- JVM学习笔记
- ACdream 1154 Lowbit Sum(数位DP)
- LeetCode之Reverse Linked List
- 书中自有颜如玉,书中自有黄金屋(尼采篇)