onlylixiaobei 2020-06-09
如果你还没有使用过消息中间件,这篇文章可以带你初步感受一下消息中间件。下面就带大家简单测试一下ActiveMq;
一、第一部分下载以及安装:
1、首先ActiveMq属于Apache下,下载路径:http://activemq.apache.org/ Classic(经典的)
2、这里有Windows版本和linux版本 ,大家可以根据自己不同的需求来下载。
3、下载完了直接解压就可以使用了;
4、进入bin目录下找到对应的bat文件点击运行,这里运行.exe文件也可以只是程序运行出错时,exe文件会直接闪退;
5、启动以后界面看下图:如果不进行修改配置文件的话 会有默认的账号密码和端口号(8161)
5、 ActiveMq做的还是比较友好的:看下图的Client界面你就明白了 http://localhost:8161/;
二、测试阶段:
1、ActiveMq已经下载安装完成,接下来进入测试阶段;
2、消息发送者的代码:
package com.example.dongl.activemq.simple; import org.apache.activemq.ActiveMQConnectionFactory; import javax.jms.*; /** * ActiveMq Queue 简单的测试 * 消息发送者 */ public class Sender { public static void main(String[] args) throws JMSException { //获取连接工厂 ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory( //如果你没有修改配置文件时,可以这么写,如果你修改了账户密码 直接替换就好了 ActiveMQConnectionFactory.DEFAULT_USER, ActiveMQConnectionFactory.DEFAULT_PASSWORD, "tcp://localhost:61616" ); //获取一个指向ActiveMq的连接 Connection connection = connectionFactory.createConnection(); //获取session 这里事务 先写成false ACK也写成默认提交 Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); //找到目的地 获取destination,然后向这个目的地写数据 ,消费端也会从这个目的地取数据 Queue queue = session.createQueue("dongliang"); // producer->创建者 消息创建者 MessageProducer producer = session.createProducer(queue); //创建消息 for (int i = 0; i < 100; i++) { TextMessage textMessage = session.createTextMessage("测试数据"); //向目的地写消息 producer.send(textMessage); } //关闭连接(根据情况一般为短连接 也有情况一直向mq写消息) connection.close(); System.out.println("exit code 0 !!!!!!!!!"); } }
3、运行完生产者代码,看一下客户端界面:
4、消息接受者代码:
package com.example.dongl.activemq.simple; import org.apache.activemq.ActiveMQConnectionFactory; import javax.jms.*; public class Receiver { public static void main(String[] args) throws JMSException { //获取连接工厂 ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory( ActiveMQConnectionFactory.DEFAULT_USER, ActiveMQConnectionFactory.DEFAULT_PASSWORD, "tcp://localhost:61616" ); //获取一个指向ActiveMq的连接 Connection connection = connectionFactory.createConnection(); connection.start(); //获取session Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); //找到目的地 获取destination,然后向这个目的地写数据 ,消费端也会从这个目的地取数据 Destination queue = session.createQueue("dongliang"); // producer->创建者 消息创建者 MessageConsumer consumer = session.createConsumer(queue); //获取消息 // while(true){ // Message message = consumer.receive(); // System.out.println("message"+message); // } for(int i = 0 ; ; i++){ TextMessage message = (TextMessage)consumer.receive(); System.out.println(message.getText()); } } }
5、运行一下接收者代码:
6、 看一下客户端界面:
结果显示:产生的消息已经被消费;
初步的介绍就简单写到这里,以后会陆续介绍一些高级用法,如果有兴趣一起学习,可以关注一下,一起讨论一起学习。