一、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,如果你的防火墙拦截了这些端口,你需要打开这些端口或者是关闭防火墙,

  1. vim /etc/sysconfig/iptables

修改后需要让修改生效,键入/etc/init.d/iptables restart这条命令即可

2、打开管理界面http://192.168.243.128:8161/admin,输入用户名admin,密码admin,可以看到以下界面

二、生产者代码

  1. package com.aciveMQ;
  2.  
  3. import javax.jms.Connection;
  4. import javax.jms.ConnectionFactory;
  5. import javax.jms.JMSException;
  6. import javax.jms.MessageProducer;
  7. import javax.jms.Queue;
  8. import javax.jms.Session;
  9. import javax.jms.TextMessage;
  10.  
  11. import org.apache.activemq.ActiveMQConnectionFactory;
  12.  
  13. public class Producer {
  14.  
  15. private static final String BROKER_URL = "tcp://192.168.243.128:61616";
  16.  
  17. public static void main(String[] args) {
  18. ConnectionFactory connectionFactory;// 连接工厂
  19. Connection connection = null;// 连接
  20. Session session = null;// 会话
  21. Queue destination;// 目标
  22. MessageProducer messageProducer;// 消息生产者
  23.  
  24. connectionFactory = new ActiveMQConnectionFactory(BROKER_URL);
  25.  
  26. try {
  27. connection = connectionFactory.createConnection();
  28.  
  29. // 第一个参数表示是否加事物操作,第二个参数Session.AUTO_ACKNOWLEDGE表示自动确认接收,
  30. //
  31. session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);
  32. destination = session.createQueue("myFirstQueue");// 创建一个叫做myFirstQueue的目标队列
  33.  
  34. messageProducer = session.createProducer(destination);// 创建消息生产者
  35. TextMessage tm = session.createTextMessage("hello world");
  36.  
  37. connection.start();
  38.  
  39. messageProducer.send(tm);
  40. session.commit();// 启动了事物就必须提交,否则不能发消息
  41. } catch (JMSException e) {
  42. e.printStackTrace();
  43. } finally {
  44. if (connection != null) {
  45. try {
  46. session.close();
  47. connection.close();
  48. } catch (JMSException e) {
  49. e.printStackTrace();
  50. }
  51. }
  52.  
  53. }
  54. }
  55.  
  56. }
  1. 2、消费者
  1. package com.aciveMQ;
  2.  
  3. import javax.jms.Connection;
  4. import javax.jms.ConnectionFactory;
  5. import javax.jms.JMSException;
  6. import javax.jms.MessageConsumer;
  7. import javax.jms.Queue;
  8. import javax.jms.Session;
  9. import javax.jms.TextMessage;
  10.  
  11. import org.apache.activemq.ActiveMQConnectionFactory;
  12.  
  13. /**
  14. * @author may
  15. *
  16. */
  17. public class Consumer {
  18. private static final String BROKER_URL = "tcp://192.168.243.128:61616";
  19.  
  20. public static void main(String[] args) {
  21.  
  22. ConnectionFactory connectionFactory = null;// 连接工厂
  23. Connection connection = null;// 连接
  24. Session session = null;// 会话
  25. Queue destination;// 目标
  26. MessageConsumer messageConsumer;
  27.  
  28. try {
  29. connectionFactory = new ActiveMQConnectionFactory(BROKER_URL);
  30. connection = connectionFactory.createConnection();
  31. // 第一个参数表示是否加事物操作,第二个参数Session.AUTO_ACKNOWLEDGE表示自动确认接收,
  32. // 消费消息不需要加事物
  33. session = connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE);
  34. destination = session.createQueue("myFirstQueue");// 创建一个叫做myFirstQueue的目标主题
  35. messageConsumer = session.createConsumer(destination);
  36.  
  37. connection.start();
  38.  
  39. // receive(long argue)在取到队列中的消息后,会按每1s钟的时间再次读取
  40. TextMessage textMessage = (TextMessage) messageConsumer.receive();
  41. if (textMessage != null) {
  42.  
  43. System.out.println(textMessage.getText());
  44.  
  45. }
  46.  
  47. // System.out.println(textMessage);
  48.  
  49. } catch (JMSException e) {
  50. e.printStackTrace();
  51. } finally {
  52. if (connection != null) {
  53. try {
  54. session.close();
  55. connection.close();
  56. } catch (JMSException e) {
  57. e.printStackTrace();
  58. }
  59. }
  60.  
  61. }
  62.  
  63. }
  64.  
  65. }
  1. 3pom.xml
  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  3. <modelVersion>4.0.</modelVersion>
  4.  
  5. <groupId>com.aciveMQ</groupId>
  6. <artifactId>activeMQ_hello</artifactId>
  7. <version>0.0.-SNAPSHOT</version>
  8. <packaging>jar</packaging>
  9.  
  10. <name>activeMQ_hello</name>
  11. <url>http://maven.apache.org</url>
  12.  
  13. <properties>
  14. <project.build.sourceEncoding>UTF-</project.build.sourceEncoding>
  15. </properties>
  16.  
  17. <dependencies>
  18. <dependency>
  19. <groupId>junit</groupId>
  20. <artifactId>junit</artifactId>
  21. <version>3.8.</version>
  22. <scope>test</scope>
  23. </dependency>
  24.  
  25. <dependency>
  26. <groupId>org.apache.activemq</groupId>
  27. <artifactId>activemq-all</artifactId>
  28. <version>5.14.</version>
  29. </dependency>
  30.  
  31. <dependency>
  32. <groupId>org.slf4j</groupId>
  33. <artifactId>slf4j-log4j12</artifactId>
  34. <version>1.7.</version>
  35. <scope>test</scope>
  36. </dependency>
  37.  
  38. </dependencies>
  39. </project>
  1.  
  2. 三、测试
    启动生产者,然后再启动消费者,就会输出hello world
  3.  

activeMQ_helloworld(一)的更多相关文章

随机推荐

  1. mysql查询类型转换问题

    mysql转换类型.类型转换.查询结果类型转换 一.问题来源 数据库一张表的主键id设为了自增,那就是int型的,但是其他表的关联字段又设置成了字符串! 而且已经开发了很久才发现问题,既然出现了问题肯 ...

  2. Python Re 模块超全解读!

    re模块下的函数 compile(pattern):创建模式对象 import repat=re.compile('A')m=pat.search('CBA')                     ...

  3. Python-基本数据类型(list,tuple)

    一. 列列表 1.1   列列表的介绍 列表是python的基础数据类型之⼀一,其他编程语言也有类似的数据类型. 比如JS中的数 组, java中的数组等等. 它是以[ ]括起来, 每个元素用' , ...

  4. 关于C# 异步

    关于C# 异步操作整理 按照个人的理解, 写一个接口用Task异步操作(态度:接受并且学习,您提出宝贵的经验与理解,我会认真学习): 在主线程中调用异步方法,如果主线程依赖异步方法的返回值那么你一定会 ...

  5. 系统学习 Java IO (九)----缓冲流 BufferedInputStream/BufferedOutputStream

    目录:系统学习 Java IO---- 目录,概览 BufferedInputStream BufferedInputStream 类为输入流提供缓冲. 缓冲可以加快IO的速度. BufferedIn ...

  6. Java虚拟机详解(二)------运行时内存结构

    首先通过一张图了解 Java程序的执行流程: 我们编写好的Java源代码程序,通过Java编译器javac编译成Java虚拟机识别的class文件(字节码文件),然后由 JVM 中的类加载器加载编译生 ...

  7. Mac上使用brew update会卡住的问题

    Mac上使用brew update会卡住的问题 brew默认的源是Github,会非常慢,建议换为国内的源.推荐中科大的镜像源,比较全面. 解决方案 Homebrew Homebrew源代码仓库 替换 ...

  8. 谈谈NOSQL

    从MongoDB引到NOSQL 要讲MongoDB之前,首先要提到一个概念NOSQL(NoSQL = Not Only SQL ) 很大一部分数据是由关系型数据库管理系统(RDMBSs)来处理的,关系 ...

  9. HDU 5527:Too Rich(DFS+贪心)***

    题目链接 题意 给出p块钱,现在要用十种硬币凑出,每种硬币有c[i]个,问最多能用多少个硬币. 思路 首先确定,对于每个硬币就是能用小的替换就不用大的. 所以,可以先把硬币尽量用小的替换,如果小的不够 ...

  10. JPA自定义实体的id

    背景:继上一篇文章,已经实现客户端数据库数据,存入服务器,但是,两张表的id不一样,应该是id设置自增了,所以虽然从客户端查出的实体带id,但是存入服务器时id被抹掉,按照服务端表的id序号向上自增, ...