activemq 入门

系统管理员 2022-08-04 14:57 263阅读 0赞

一、windows下运行

1、下载

  1. [ http://activemq.apache.org/activemq-5100-release.html][http_activemq.apache.org_activemq-5100-release.html]

2、下载.zip格式的文件

  1. 解压缩后根据电脑位数,运行相应位数下面的.bat文件
  2. 例:我的电脑为64位放在d盘;运行为:D:\\activemq510\\bin\\win64\\activemq.bat

3、启动成功后访问管理界面

  1. [http://localhost:8161/admin/

]httplocalhost_8161_admin

  1. 用户名密码默认为:admin/admin

4、创建eclipse项目

  1. 项目结构为

Center

  1. maven的依赖为
  2. <dependency>
  3. <groupId>org.apache.activemq</groupId>
  4. <artifactId>activemq-broker</artifactId>
  5. <version>5.10.0</version>
  6. </dependency>

5、创建serder

package com.bahd.activemq;

import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.DeliveryMode;
import javax.jms.Destination;
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 {

  1. private static final int SEND\_NUMBER = 5;
  2. public static void main(String\[\] args) \{
  3. // ConnectionFactory :连接工厂,JMS 用它创建连接
  4. ConnectionFactory connectionFactory;
  5. // Connection :JMS 客户端到JMS Provider 的连接
  6. Connection connection = null;
  7. // Session: 一个发送或接收消息的线程
  8. Session session;
  9. // Destination :消息的目的地;消息发送给谁.
  10. Destination destination;
  11. // MessageProducer:消息发送者
  12. MessageProducer producer;
  13. // TextMessage message;
  14. // 构造ConnectionFactory实例对象,此处采用ActiveMq的实现jar
  15. connectionFactory = new ActiveMQConnectionFactory(
  16. ActiveMQConnection.DEFAULT\_USER,
  17. ActiveMQConnection.DEFAULT\_PASSWORD,
  18. "tcp://localhost:61616");
  19. try \{
  20. // 构造从工厂得到连接对象
  21. connection = connectionFactory.createConnection();
  22. // 启动
  23. connection.start();
  24. // 获取操作连接
  25. session = connection.createSession(Boolean.TRUE,
  26. Session.AUTO\_ACKNOWLEDGE);
  27. // 获取session注意参数值xingbo.xu-queue是一个服务器的queue,须在在ActiveMq的console配置
  28. destination = session.createQueue("FirstQueue");
  29. // 得到消息生成者【发送者】
  30. producer = session.createProducer(destination);
  31. // 设置不持久化,此处学习,实际根据项目决定
  32. producer.setDeliveryMode(DeliveryMode.NON\_PERSISTENT);
  33. // 构造消息,此处写死,项目就是参数,或者方法获取
  34. sendMessage(session, producer);
  35. session.commit();
  36. \} catch (Exception e) \{
  37. e.printStackTrace();
  38. \} finally \{
  39. try \{
  40. if (null != connection)
  41. connection.close();
  42. \} catch (Throwable ignore) \{
  43. \}
  44. \}
  45. \}
  46. public static void sendMessage(Session session, MessageProducer producer)
  47. throws Exception \{
  48. for (int i = 1; i <= SEND\_NUMBER; i++) \{
  49. TextMessage message = session
  50. .createTextMessage("ActiveMq 发送的消息" + i);
  51. // 发送消息到目的地方
  52. System.out.println("发送消息:" + "ActiveMq 发送的消息" + i);
  53. producer.send(message);
  54. \}
  55. \}

}

6、创建Receiver

package com.bahd.activemq;

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 {

  1. public static void main(String\[\] args) \{
  2. // ConnectionFactory :连接工厂,JMS 用它创建连接
  3. ConnectionFactory connectionFactory;
  4. // Connection :JMS 客户端到JMS Provider 的连接
  5. Connection connection = null;
  6. // Session: 一个发送或接收消息的线程
  7. Session session;
  8. // Destination :消息的目的地;消息发送给谁.
  9. Destination destination;
  10. // 消费者,消息接收者
  11. MessageConsumer consumer;
  12. connectionFactory = new ActiveMQConnectionFactory(
  13. ActiveMQConnection.DEFAULT\_USER,
  14. ActiveMQConnection.DEFAULT\_PASSWORD,
  15. "tcp://localhost:61616");
  16. try \{
  17. // 构造从工厂得到连接对象
  18. connection = connectionFactory.createConnection();
  19. // 启动
  20. connection.start();
  21. // 获取操作连接
  22. session = connection.createSession(Boolean.FALSE,
  23. Session.AUTO\_ACKNOWLEDGE);
  24. // 获取session注意参数值xingbo.xu-queue是一个服务器的queue,须在在ActiveMq的console配置
  25. destination = session.createQueue("FirstQueue");
  26. consumer = session.createConsumer(destination);
  27. while (true) \{
  28. //设置接收者接收消息的时间,为了便于测试,这里谁定为100s
  29. TextMessage message = (TextMessage) consumer.receive(100000);
  30. if (null != message) \{
  31. System.out.println("收到消息" + message.getText());
  32. \} else \{
  33. break;
  34. \}
  35. \}
  36. \} catch (Exception e) \{
  37. e.printStackTrace();
  38. \} finally \{
  39. try \{
  40. if (null != connection)
  41. connection.close();
  42. \} catch (Throwable ignore) \{
  43. \}
  44. \}
  45. \}

}

7、运行先运行那个都行

结果如下:

发送消息:ActiveMq 发送的消息1
发送消息:ActiveMq 发送的消息2
发送消息:ActiveMq 发送的消息3
发送消息:ActiveMq 发送的消息4
发送消息:ActiveMq 发送的消息5

收到消息ActiveMq 发送的消息1
收到消息ActiveMq 发送的消息2
收到消息ActiveMq 发送的消息3
收到消息ActiveMq 发送的消息4
收到消息ActiveMq 发送的消息5

发表评论

表情:
评论列表 (有 0 条评论,263人围观)

还没有评论,来说两句吧...

相关阅读

    相关 ActiveMQ入门

    前言:最近在公司用到了activeMq接收消息,从网上查了些资料,形成了一个大概的理解,所以总结一下,因为知识都是网上学习的难免有疏漏之处,望理解。 参考: [https:

    相关 activeMQ入门

    目录 一、下载activeMQ包 二、准备Linux环境 三、所遇问题 -------------------- 一、下载activeMQ包         可

    相关 ActiveMQ入门

    ActiveMQ介绍      MQ是消息中间件,是一种在分布式系统中应用程序借以传递消息的媒介,常用的有ActiveMQ,RabbitMQ,kafka。ActiveMQ