启动java程序下载_ActiveMQ(下载,启动,java程序中 如何操作)

为了快速上手ActiveMQ 找个一个windows版本的mq来实现它的功能

1.http://activemq.apache.org/activemq-5158-release.html 下载

2.解压文件

3.根据自己电脑的位数,选择 是32位还是64位启动

ff696774549661e69e6f994acf883889.png

4.双击 activemp.bat 启动mq

5.启动成功以后可以请求反问mq管理后端地址:127.0.0.1:8161

39243956e5783737949ed837287c9c1a.png

6.第一次默认登录账户和密码 都是admin

331511e494f38d2950615cfca899430f.png

7.双击Queues

2981499c3993fba02fe0092dc6eb1220.png

name:队列名字

Number Of Pending Messages 等待消费的消息 这个是当前未出队列的数量。可以理解为总接收数-总出队列数

Number Of Consumers  消费者 这个是消费者端的消费者数量

Messages Enqueued 进入队列的消息  进入队列的总数量,包括出队列的。 这个数量只增不减

Messages Dequeued 出了队列的消息  可以理解为是消费这消费掉的数量

8.根据队列的变化情况,7图中的各个数据都会出现相应的变化

9.pom.xml中引入 ActiveMQ的依赖

org.apache.activemq

activemq-core

5.7.0

10.java MQ 生产者测试代码:

packagecom.example.demo.producter;importjavax.jms.Connection;importjavax.jms.DeliveryMode;importjavax.jms.Destination;importjavax.jms.JMSException;importjavax.jms.MessageProducer;importjavax.jms.Session;importjavax.jms.TextMessage;importorg.apache.activemq.ActiveMQConnectionFactory;public classActiveMqProducter {public static String url = "tcp://127.0.0.1:61616";public static void main(String[] args) throwsJMSException {//根据用户名 和密码,地址,获取JMS 的连接工厂 61616端口 是mq服务的端口 而8161 是mq提供的管理后端的端口

ActiveMQConnectionFactory connetionFactory = new ActiveMQConnectionFactory("admin", "admin", url);//从连接工厂创建一条连接

Connection connection =connetionFactory.createConnection();//开启连接

connection.start();//创建session会话,第一参数表示启用事务处理,第二个参数表示启动哪种应答模式,这里启用的是自动应答 一个类似 接受 或者发送的线程

Session session =connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE);//用session创建一个

Destination destination = session.createQueue("mq-msg");//MessageProducer:消息生产者

MessageProducer producer =session.createProducer(destination);//设置不持久化

producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);//发送一条消息

for (int i = 1; i <= 5; i++) {

sendMsg(session, producer, i);

}

connection.close();

}/*** 在指定的会话上,通过指定的消息生产者发出一条消息

*

*@paramsession

* 消息会话

*@paramproducer

* 消息生产者*/

public static void sendMsg(Session session, MessageProducer producer, int i) throwsJMSException {//创建一条文本消息

TextMessage message = session.createTextMessage("Hello ActiveMQ!" +i);//通过消息生产者发出消息

producer.send(message);

}

}

运行测试类以前:

32fae7ddb1151418a8231ceef8268ac8.png

运行测试类以后:

50e40acd0e56c4dda54f0258ecb23c43.png

11 创建MQ java的消费者代码:

packagecom.example.demo.consumer;importjavax.jms.Connection;importjavax.jms.ConnectionFactory;importjavax.jms.Destination;importjavax.jms.JMSException;importjavax.jms.MessageConsumer;importjavax.jms.Session;importjavax.jms.TextMessage;importorg.apache.activemq.ActiveMQConnection;importorg.apache.activemq.ActiveMQConnectionFactory;public classConsumer {public static void main(String[] args) throwsJMSException {//ConnectionFactory :连接工厂,JMS 用它创建连接

ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("admin", "admin", "tcp://127.0.0.1:61616");//JMS 客户端到JMS Provider 的连接

Connection connection =connectionFactory.createConnection();

connection.start();//Session: 一个发送或接收消息的线程

Session session =connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE);//Destination :消息的目的地;消息发送给谁.//获取session注意参数值xingbo.xu-queue是一个服务器的queue,须在在ActiveMq的console配置

Destination destination = session.createQueue("mq-msg");//消费者,消息接收者

MessageConsumer consumer =session.createConsumer(destination);while (true) {

TextMessage message=(TextMessage) consumer.receive();if (null !=message) {

System.out.println("收到消息:" +message.getText());

}else

break;

}

session.close();

connection.close();

}

}

运行消费者以后:

29fae7beb725b45b1b0cc100efdfac9f.png

管理后端的数据变化:

981bde9f6f8f8fbdb981493946db4b1f.png

12.通过简单的代码,可以看出,生产者生产消息放到队列以后,如果没有消费者消费,则消息会一直存放在队列里(关闭MQ,没有持久化除外),直到消费者成功消费完队列的消息,消费成功 则通知队列,清除该消息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值