activeMQ_helloworld(一)
一、activeMQ下载,直接在Linux上wget http://mirror.bit.edu.cn/apache//activemq/5.14.5/apache-activemq-5.14.5-bin.tar.gz
使用tar -zxvf 解压即可,启动activeMQ很简单,直接cd到bin目录,./activemq start即可
activeMQ的默认端口是61616,后台管理界面的端口是8161,如果你的防火墙拦截了这些端口,你需要打开这些端口或者是关闭防火墙,
- vim /etc/sysconfig/iptables
修改后需要让修改生效,键入/etc/init.d/iptables restart这条命令即可
2、打开管理界面http://192.168.243.128:8161/admin,输入用户名admin,密码admin,可以看到以下界面
二、生产者代码
- package com.aciveMQ;
- import javax.jms.Connection;
- import javax.jms.ConnectionFactory;
- import javax.jms.JMSException;
- import javax.jms.MessageProducer;
- import javax.jms.Queue;
- import javax.jms.Session;
- import javax.jms.TextMessage;
- import org.apache.activemq.ActiveMQConnectionFactory;
- public class Producer {
- private static final String BROKER_URL = "tcp://192.168.243.128:61616";
- public static void main(String[] args) {
- ConnectionFactory connectionFactory;// 连接工厂
- Connection connection = null;// 连接
- Session session = null;// 会话
- Queue destination;// 目标
- MessageProducer messageProducer;// 消息生产者
- connectionFactory = new ActiveMQConnectionFactory(BROKER_URL);
- try {
- connection = connectionFactory.createConnection();
- // 第一个参数表示是否加事物操作,第二个参数Session.AUTO_ACKNOWLEDGE表示自动确认接收,
- //
- session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);
- destination = session.createQueue("myFirstQueue");// 创建一个叫做myFirstQueue的目标队列
- messageProducer = session.createProducer(destination);// 创建消息生产者
- TextMessage tm = session.createTextMessage("hello world");
- connection.start();
- messageProducer.send(tm);
- session.commit();// 启动了事物就必须提交,否则不能发消息
- } catch (JMSException e) {
- e.printStackTrace();
- } finally {
- if (connection != null) {
- try {
- session.close();
- connection.close();
- } catch (JMSException e) {
- e.printStackTrace();
- }
- }
- }
- }
- }
- 2、消费者
- package com.aciveMQ;
- import javax.jms.Connection;
- import javax.jms.ConnectionFactory;
- import javax.jms.JMSException;
- import javax.jms.MessageConsumer;
- import javax.jms.Queue;
- import javax.jms.Session;
- import javax.jms.TextMessage;
- import org.apache.activemq.ActiveMQConnectionFactory;
- /**
- * @author may
- *
- */
- public class Consumer {
- private static final String BROKER_URL = "tcp://192.168.243.128:61616";
- public static void main(String[] args) {
- ConnectionFactory connectionFactory = null;// 连接工厂
- Connection connection = null;// 连接
- Session session = null;// 会话
- Queue destination;// 目标
- MessageConsumer messageConsumer;
- try {
- connectionFactory = new ActiveMQConnectionFactory(BROKER_URL);
- connection = connectionFactory.createConnection();
- // 第一个参数表示是否加事物操作,第二个参数Session.AUTO_ACKNOWLEDGE表示自动确认接收,
- // 消费消息不需要加事物
- session = connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE);
- destination = session.createQueue("myFirstQueue");// 创建一个叫做myFirstQueue的目标主题
- messageConsumer = session.createConsumer(destination);
- connection.start();
- // receive(long argue)在取到队列中的消息后,会按每1s钟的时间再次读取
- TextMessage textMessage = (TextMessage) messageConsumer.receive();
- if (textMessage != null) {
- System.out.println(textMessage.getText());
- }
- // System.out.println(textMessage);
- } catch (JMSException e) {
- e.printStackTrace();
- } finally {
- if (connection != null) {
- try {
- session.close();
- connection.close();
- } catch (JMSException e) {
- e.printStackTrace();
- }
- }
- }
- }
- }
- 3、pom.xml
- <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.</modelVersion>
- <groupId>com.aciveMQ</groupId>
- <artifactId>activeMQ_hello</artifactId>
- <version>0.0.-SNAPSHOT</version>
- <packaging>jar</packaging>
- <name>activeMQ_hello</name>
- <url>http://maven.apache.org</url>
- <properties>
- <project.build.sourceEncoding>UTF-</project.build.sourceEncoding>
- </properties>
- <dependencies>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>3.8.</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.activemq</groupId>
- <artifactId>activemq-all</artifactId>
- <version>5.14.</version>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- <version>1.7.</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
- </project>
- 三、测试
启动生产者,然后再启动消费者,就会输出hello world。
activeMQ_helloworld(一)的更多相关文章
随机推荐
- mysql查询类型转换问题
mysql转换类型.类型转换.查询结果类型转换 一.问题来源 数据库一张表的主键id设为了自增,那就是int型的,但是其他表的关联字段又设置成了字符串! 而且已经开发了很久才发现问题,既然出现了问题肯 ...
- Python Re 模块超全解读!
re模块下的函数 compile(pattern):创建模式对象 import repat=re.compile('A')m=pat.search('CBA') ...
- Python-基本数据类型(list,tuple)
一. 列列表 1.1 列列表的介绍 列表是python的基础数据类型之⼀一,其他编程语言也有类似的数据类型. 比如JS中的数 组, java中的数组等等. 它是以[ ]括起来, 每个元素用' , ...
- 关于C# 异步
关于C# 异步操作整理 按照个人的理解, 写一个接口用Task异步操作(态度:接受并且学习,您提出宝贵的经验与理解,我会认真学习): 在主线程中调用异步方法,如果主线程依赖异步方法的返回值那么你一定会 ...
- 系统学习 Java IO (九)----缓冲流 BufferedInputStream/BufferedOutputStream
目录:系统学习 Java IO---- 目录,概览 BufferedInputStream BufferedInputStream 类为输入流提供缓冲. 缓冲可以加快IO的速度. BufferedIn ...
- Java虚拟机详解(二)------运行时内存结构
首先通过一张图了解 Java程序的执行流程: 我们编写好的Java源代码程序,通过Java编译器javac编译成Java虚拟机识别的class文件(字节码文件),然后由 JVM 中的类加载器加载编译生 ...
- Mac上使用brew update会卡住的问题
Mac上使用brew update会卡住的问题 brew默认的源是Github,会非常慢,建议换为国内的源.推荐中科大的镜像源,比较全面. 解决方案 Homebrew Homebrew源代码仓库 替换 ...
- 谈谈NOSQL
从MongoDB引到NOSQL 要讲MongoDB之前,首先要提到一个概念NOSQL(NoSQL = Not Only SQL ) 很大一部分数据是由关系型数据库管理系统(RDMBSs)来处理的,关系 ...
- HDU 5527:Too Rich(DFS+贪心)***
题目链接 题意 给出p块钱,现在要用十种硬币凑出,每种硬币有c[i]个,问最多能用多少个硬币. 思路 首先确定,对于每个硬币就是能用小的替换就不用大的. 所以,可以先把硬币尽量用小的替换,如果小的不够 ...
- JPA自定义实体的id
背景:继上一篇文章,已经实现客户端数据库数据,存入服务器,但是,两张表的id不一样,应该是id设置自增了,所以虽然从客户端查出的实体带id,但是存入服务器时id被抹掉,按照服务端表的id序号向上自增, ...