activemq使用系列: linux环境下ActiveMQ 的安装与使用(单节点)
2016-05-16 03:21
736 查看
1、 安装 JDK 并配置环境变量(略)
2 下载 Linux 版的 ActiveMQ
2 下载 Linux 版的 ActiveMQ
<span style="white-space:pre"> </span>wget http://apache.fayea.com/activemq/5.11.1/apache-activemq-5.11.1-bin.tar.gz[/code]
3、 解压
4、 防火墙中打开activemq的使用端口
一个是连接broker的端口
我们可以在amq的安装目录包的conf目录下的activemq.xml中看到
61616就是我们的broker连接端口
一个是amq控制台的端口
我们可以在conf/jetty.xml中看到
打开linux防火墙文件,增加如下配置,允许这两个端口被访问<span style="white-space:pre"> </span>vi /etc/sysconfig/iptables
重新启动防火墙服务<span style="white-space:pre"> </span>service iptables restart
进入amq的安装目录下/bin/ 启动amq运行脚本<span style="white-space:pre"> </span>./activemq start
打开浏览器输入地址<span style="white-space:pre"> </span>http://192.168.1.10:8161/
这里的IP地址可以通过linux命令 ipconfig查看,我这里是192.168.1.10
接下我们写个小程序使用一下
创建一个maven工程用
创建一个消息发送类/** * */ package com.pcx.amqproducer; import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.Destination; import javax.jms.MapMessage; import javax.jms.MessageProducer; import javax.jms.Session; import org.apache.activemq.ActiveMQConnectionFactory; import org.apache.activemq.command.ActiveMQQueue; /** * * @author scarletbullet * @version $Id: MyProducer.java */ public class MyProducer { public static void main(String[] args) { //连接broker,就是我们刚刚防火墙里面打开的那个端口 ConnectionFactory cf= new ActiveMQConnectionFactory("tcp://192.168.1.10:61616"); //创建了一个队列名称为 "user.queue" Destination destination=new ActiveMQQueue("user.queuer"); Connection conn=null; try { //从连接工程里面获取一个新连接 conn=cf.createConnection(); //自动确认消息的发送 Session session=conn.createSession(false, Session.AUTO_ACKNOWLEDGE); //创建一个消息生产者,并且配置发送消息的地址 MessageProducer producer=session.createProducer(destination); //创建一个map类型的消息 MapMessage message=session.createMapMessage(); message.setString("userId", "123456"); message.setString("userName", "李四"); message.setInt("age", 18); //发送 producer.send(message); //关闭 session.close(); } catch (Exception e) { throw new RuntimeException(e); }finally{ if(conn!=null){ try { conn.close(); } catch (Exception e2) { // TODO: handle exception } } } } }运行一下,我们刷新一下amq的控制台可以看见
我们可以看到消息发送成功
接下来写一下消息消费者
一样,我们创建一个maven工程
创建一个消息消费者的类package com.pcx.amqconsumer; import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.Destination; import javax.jms.MapMessage; import javax.jms.MessageConsumer; import javax.jms.Session; import org.apache.activemq.ActiveMQConnectionFactory; import org.apache.activemq.command.ActiveMQQueue; /** * * @author scarletbullet * @version $Id: MyConsumer.java, */ public class MyConsumer { public static void main(String[] args) { //连接broker,就是我们刚刚防火墙里面打开的那个端口 ConnectionFactory cf= new ActiveMQConnectionFactory("tcp://192.168.1.10:61616"); //创建了一个队列名称为 "user.queue" Destination destination=new ActiveMQQueue("user.queuer"); Connection conn=null; try { //从连接工程里面获取一个新连接 conn=cf.createConnection(); //自动确认消息的接受 Session session=conn.createSession(false, Session.AUTO_ACKNOWLEDGE); //创建一个消费者 MessageConsumer consumer=session.createConsumer(destination); conn.start(); //同步阻塞等待接受消息 MapMessage message=(MapMessage)consumer.receive(); System.out.println(message.getInt("age") +" "+ message.getString("userId")+" "+message.getString("userName")); session.close(); } catch (Exception e) { throw new RuntimeException(e); }finally{ if(conn!=null){ try { conn.close(); } catch (Exception e2) { // TODO: handle exception } } } } }run一下这个java类
我们可以在控制台看到![]()
相关文章推荐
- Linux学习日志(十)
- Linux学习日志(十一)
- Linux学习日志(十二)
- Linux学习日志(十三)
- Linux学习日志(十四)
- Linux学习日志(十五)
- linux定时器流程自我总结
- C#在Linux上的开发指南
- 6.分析Linux内核创建一个新进程的过程
- Linux文件链接
- 慕课linux学习笔记(七)常用命令(4)
- Centos下快速搭建svn版本库
- zabbix 添加监控Linux Disk I/O 模板
- win7下硬盘安装fedora,linux的学习之路
- 嵌入式linux教程
- Linux下堆漏洞的利用机制
- Linux内核提权查询
- MySQL5.6主从复制的配置(CentOS-6.6+MySQL-5.6)(二)
- MySQL5.6源码编译安装(CentOS-6.6+MySQL-5.6)(一)
- linux ar命令