消息中间件 ActiveMQ的简单使用

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介:

一、AactiveMQ的下载和安装

1. 下载ActiveMQ

地址:http://activemq.apache.org/activemq-5152-release.html

我这里下载的是window的版本

2. 下载后,解压

 

 里面有win32位和win64两种文件夹,找到你电脑上对应的win版本,我这里用的win64

右击activemq.bat,并且以管理员身份运行

启动成功后,会打印http的地址

打开这个网址http://127.0.0.1:8186

 

二、代码的使用

1. 创建工程

创建一个Maven工程,

 

2. 创建生产者

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
public  class  AppProducer
{
     private  static  final  String url =  "tcp://192.168.2.121:61616" ;
 
     private  static  final  String queueName= "queue-test" ;
 
     public  static  void   main(String[] args){
         //1. 创建ConnectionFactory
         ConnectionFactory connectionFactory =  new  ActiveMQConnectionFactory(url);
 
 
         try  {
             //2. 创建Connection
             Connection connection = connectionFactory.createConnection();
 
             //3. 启动连接
              connection.start();
 
              //4. 创建会话
             Session session = connection.createSession( false , Session.AUTO_ACKNOWLEDGE);
 
             //5. 创建一个目标
             Destination destination = session.createQueue(queueName);
 
             //6.  创建一个目标
             MessageProducer producer = session.createProducer(destination);
 
             for ( int  i= 0 ; i< 100 ; i++){
                 //7. 创建消息
                 TextMessage textMessage = session.createTextMessage( "test"  + i);
                 //8. 发布消息
                 producer.send(textMessage);
                 System.out.println( "发送消息"  + textMessage.getText());
             }
             //9.关闭连接
             connection.close();
 
 
 
         catch  (JMSException e) {
             e.printStackTrace();
         }
 
 
     }

  

3. 创建消费者

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
public  class  AppConsumer {
     private  static  final  String url =  "tcp://192.168.2.121:61616" ;
 
     private  static  final  String queueName= "queue-test" ;
 
     public  static  void   main(String[] args)  throws  JMSException{
         //1. 创建ConnectionFactory
         ConnectionFactory connectionFactory =  new  ActiveMQConnectionFactory(url);
 
         //2. 创建Connection
         Connection connection = connectionFactory.createConnection();
 
         //3. 启动连接
         connection.start();
 
         //4. 创建会话
         Session session = connection.createSession( false , Session.AUTO_ACKNOWLEDGE);
 
         //5. 创建一个目标
         Destination destination = session.createQueue(queueName);
 
         //6. 创建一个消费者
         MessageConsumer consumer = session.createConsumer(destination);
 
         //7. 创建一个监听器
         consumer.setMessageListener( new  MessageListener() {
             public  void  onMessage(Message message) {
                 TextMessage textMessage = (TextMessage)message;
 
                 try  {
                     System.out.println( "接收消息"  + textMessage.getText());
                 catch  (JMSException e) {
                     e.printStackTrace();
                 }
             }
         });
 
     }
}

  

三、主题模式下的消息

1. 消费者

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
public  class  AppConsumer {
     private  static  final  String url =  "tcp://192.168.2.121:61616" ;
 
     private  static  final  String topicName= "topic-test" ;
 
     public  static  void   main(String[] args)  throws  JMSException{
         //1. 创建ConnectionFactory
         ConnectionFactory connectionFactory =  new  ActiveMQConnectionFactory(url);
 
         //2. 创建Connection
         Connection connection = connectionFactory.createConnection();
 
         //3. 启动连接
         connection.start();
 
         //4. 创建会话
         Session session = connection.createSession( false , Session.AUTO_ACKNOWLEDGE);
 
         //5. 创建一个目标
         Destination destination = session.createTopic(topicName);
 
         //6. 创建一个消费者
         MessageConsumer consumer = session.createConsumer(destination);
 
         //7. 创建一个监听器
         consumer.setMessageListener( new  MessageListener() {
             public  void  onMessage(Message message) {
                 TextMessage textMessage = (TextMessage)message;
                 try  {
                     System.out.println( "接收消息"  + textMessage.getText());
                 catch  (JMSException e) {
                     e.printStackTrace();
                 }
             }
         });
         
     }
}

  

2. 创建生产者

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
public  class  AppProducer
{
     private  static  final  String url =  "tcp://192.168.2.121:61616" ;
 
     private  static  final  String topicName= "topic-test" ;
 
     public  static  void   main(String[] args){
         //1. 创建ConnectionFactory
         ConnectionFactory connectionFactory =  new  ActiveMQConnectionFactory(url);
 
 
         try  {
             //2. 创建Connection
             Connection connection = connectionFactory.createConnection();
 
             //3. 启动连接
              connection.start();
 
              //4. 创建会话
             Session session = connection.createSession( false , Session.AUTO_ACKNOWLEDGE);
 
             //5. 创建一个目标
             Destination destination = session.createTopic(topicName);
 
             //6.  创建一个目标
             MessageProducer producer = session.createProducer(destination);
 
             for ( int  i= 0 ; i< 100 ; i++){
                 //7. 创建消息
                 TextMessage textMessage = session.createTextMessage( "test"  + i);
                 //8. 发布消息
                 producer.send(textMessage);
                 System.out.println( "发送消息"  + textMessage.getText());
             }
             //9.关闭连接
             connection.close();
 
 
 
         catch  (JMSException e) {
             e.printStackTrace();
         }
 
 
     }
}

  


本文转自Work Hard Work Smart博客园博客,原文链接:http://www.cnblogs.com/linlf03/p/8047357.html,如需转载请自行联系原作者


目录
相关文章
|
2月前
|
消息中间件 网络协议 Java
消息中间件-ActiveMQ
消息中间件-ActiveMQ
|
5月前
|
消息中间件 存储 监控
Java一分钟之-ActiveMQ:消息中间件
【6月更文挑战第11天】Apache ActiveMQ是广泛使用的开源消息中间件,支持JMS和多种消息协议。本文介绍了ActiveMQ的基础知识,包括消息队列和主题模型,以及持久化和高可用性配置。同时,提出了三个常见问题:配置不当、消息堆积和网络错误,并给出了相应的解决策略。通过Java示例代码展示了如何使用ActiveMQ发送和接收消息。正确配置、管理消息处理和持续监控是确保ActiveMQ高效运行的关键。
149 2
|
4月前
|
消息中间件 NoSQL Kafka
消息中间件(RocketMQ、RabbitMQ、ActiveMQ、Redis、kafka、ZeroMQ)以及之间的区别
消息中间件(RocketMQ、RabbitMQ、ActiveMQ、Redis、kafka、ZeroMQ)以及之间的区别
|
消息中间件 Java Maven
消息中间件系列教程(03) -ActiveMQ -点对点&发布订阅模式
消息中间件系列教程(03) -ActiveMQ -点对点&发布订阅模式
95 0
|
消息中间件 Java Linux
消息中间件系列教程(02) -ActiveMQ -安装&入门案例
消息中间件系列教程(02) -ActiveMQ -安装&入门案例
60 0
|
消息中间件 缓存 安全
SpringBoot与JMS集成(中间件为ActiveMQ)
Apache ActiveMQ是最受欢迎和强有力的开源消息和集成模式服务器,支持许多跨语言客户端和协议,便利使用企业集成模式还有许多先进的特性。
|
消息中间件 存储 缓存
消息中间件ActiveMQ常见问题解析
消息中间件ActiveMQ常见问题解析
379 5
|
消息中间件 XML 开发框架
|
消息中间件 存储 NoSQL
剑指offer之消息中间件ActiveMQ知识总结
剑指offer之消息中间件ActiveMQ知识总结
217 2
剑指offer之消息中间件ActiveMQ知识总结
|
消息中间件 Java
JAVA分布式--ActiveMQ 消息中间件(下)
JAVA分布式--ActiveMQ 消息中间件(下)
117 5
JAVA分布式--ActiveMQ 消息中间件(下)