`

ActiveMQ的学习

 
阅读更多

好吧,我承认自己在写blog方面很不好,经常一个链接或者文章直接粘贴复制过来,一点自己的读后感都没有,慢慢改正咯!

ActiveMQ这个东西,我之前都不知道,是我的领导(old)在QQ上跟我说的,他们的系统用到了这个方面知识,他叫我有时间就了解一下,故而baidu看了相关例子。

来源:http://www.cnblogs.com/xwdreamer/archive/2012/02/21/2360818.html

1.下载ActiveMQ

去官方网站下载:http://activemq.apache.org/ (我是直接百度下载的,没去官网)

2.运行ActiveMQ

解压缩apache-activemq-5.2.0-bin.zip(上传不了),然后双击apache-activemq-5.2.0\bin\activemq.bat运行ActiveMQ程序。

启动ActiveMQ以后,登陆:http://localhost:8161/admin/,如图mq.png所属

3.创建Eclipse项目并运行

 

创建project:ActiveMQ,并导入apache-activemq-5.2.0\lib目录下需要用到的jar文件(反正就是导入需要用到的jar包,我也忘记了是不是在这个目录下找到的),项目结构如ActiveMQ.png所示:

 

 

3.1.Sender.java

package com.dxy.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 {
	
	private static final int SEND_NUMBER=5;

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		//连接工厂,JMS用它创建连接
		ConnectionFactory connectionFactory;
		//JMS客户端到JMS Provider的连接
		Connection connection=null;
		//一个发送或接收消息的线程
		Session session;
		//消息的目的地;消息发送给谁
		Destination destination;
		MessageProducer producer;
		connectionFactory=new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER,ActiveMQConnection.DEFAULT_PASSWORD,"tcp://localhost:61616");
        try{
        	connection=connectionFactory.createConnection();
        	connection.start();
        	session=connection.createSession(Boolean.TRUE,Session.AUTO_ACKNOWLEDGE);
        	destination=session.createQueue("FirstQueue");
        	producer=session.createProducer(destination);
        	producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
        	sendMessage(session,producer);
        	session.commit();
        }catch(Exception e){
        	e.printStackTrace();
        }finally{
        	try{
        		if(null!=connection){
        			connection.close();
        		}
        	}catch(Throwable ignore){
        		
        	}
        }
	}
	
	public static void sendMessage(Session session,MessageProducer producer)throws Exception{
		for(int i=1;i<=SEND_NUMBER;i++){
			TextMessage message=session.createTextMessage("ActiveMq 发送的消息"+i);
			System.out.println("发送信息:"+"ActiveMq 发送消息"+i);
			producer.send(message);
		}
	}

}

 

3.2.Receiver.java

 
package com.dxy.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 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
         ConnectionFactory connectionFactory;
         Connection connection=null;
         Session session;
         Destination destination;
         MessageConsumer consumer;
         connectionFactory=new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER,ActiveMQConnection.DEFAULT_PASSWORD,"tcp://localhost:61616");
         try{
        	 connection=connectionFactory.createConnection();
        	 connection.start();
        	 session=connection.createSession(Boolean.FALSE,Session.AUTO_ACKNOWLEDGE);
        	 destination=session.createQueue("FirstQueue");
        	 consumer=session.createConsumer(destination);
        	 while(true){
        		 TextMessage message=(TextMessage)consumer.receive(500000);
        		 if(null!=message){
        			 System.out.println("收到消息"+message.getText());
        		 }else{
        			 break;
        		 }
        	 }
         }catch(Exception e){
        	 e.printStackTrace();
         }finally{
        	 try{
        		 if(null!=connection)
        			 connection.close();
        	 }catch(Throwable ignore){
        		 
        	 }
         }
	}

}
 

3.测试过程

在eclipse里面先启动receiver服务,再启动sender服务,在控制台上打印如下信息:

sender服务对应的控制台:

发送信息:ActiveMq 发送消息1
发送信息:ActiveMq 发送消息2
发送信息:ActiveMq 发送消息3
发送信息:ActiveMq 发送消息4
发送信息:ActiveMq 发送消息5
receiver服务对应的控制台:

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

 ps:祝大家好好学习,天天向上!!!

  • 大小: 24.5 KB
  • 大小: 77.4 KB
分享到:
评论

相关推荐

    ActiveMQ学习 完整例子

    在"ActiveMQ学习"的完整例子中,你可以通过编写Java代码来创建生产者和消费者,实践发送和接收消息,了解消息的生命周期和状态。同时,通过配置不同的参数,体验ActiveMQ的灵活性和强大功能。例如,你可以创建一个...

    activeMQ学习

    - **事务管理**:学习如何在ActiveMQ中使用本地事务和分布式事务来保证消息的一致性。 - **网络和集群**:掌握如何配置和管理ActiveMQ的网络连接和集群,以提高可用性和容错性。 通过深入学习和实践,你可以熟练地...

    activemq学习心得.docx

    activemq学习心得 activemq是Apache软件基金会所研发的开放源代码消息队列iddleware,主要用来实现异步消息处理、解耦合和扩展系统。以下是activemq学习心得的知识点总结: 一、activemq配置文件 activemq的配置...

    activemq学习资料.docx

    ActiveMQ学习资料 Activemq是Apache软件基金会的一个开源的消息总线系统,使用Java语言编写的,遵循JMS(Java Message Service)规范。下面是Activemq学习资料的知识点总结: JMS基本构件 * 连接工厂...

    spring boot ActiveMQ学习练习demo项目源码

    Spring Boot ActiveMQ学习练习demo项目源码是一个针对Java开发者的学习资源,它涵盖了使用Spring Boot集成ActiveMQ进行消息队列操作的基本实践。ActiveMQ是Apache软件基金会的一个开源项目,它是Java消息服务(JMS)...

    ActiveMQ学习笔记之九--发送消息到队列中

    这篇"ActiveMQ学习笔记之九--发送消息到队列中"主要探讨的是如何通过编程方式向ActiveMQ队列发送消息,这对于理解和应用消息中间件至关重要。 首先,我们要理解ActiveMQ中的队列(Queue)概念。队列是一种先进先出...

    ActiveMQ学习笔记之四--启动嵌入式Broker(纯代码方式)

    在本篇ActiveMQ学习笔记中,我们将探讨如何通过纯代码方式启动一个嵌入式的Broker,这对于测试、开发或者快速原型构建非常有用。ActiveMQ是一个开源的消息代理,它遵循Java消息服务(JMS)规范,提供了高可靠性的...

    Java消息中间件ActiveMQ学习资料

    总的来说,这个学习资料包提供了从理论到实践的全方位ActiveMQ学习路径。从基础的ActiveMQ使用到高级的集群配置,再到生产环境中的实际应用,每个环节都覆盖到了。对Java开发者和系统架构师而言,这些都是提升技能和...

    工作学习-消息中间件activeMQ学习总结

    工作学习-消息中间件ActiveMQ学习总结 本文总结了消息中间件ActiveMQ的学习要点,涵盖了为什么使用消息中间件、消息中间件的组成、JMS规范、ActiveMQ简介、消息中间件的应用场景等方面。 一、为什么使用消息中间件...

    activemq学习入门第一步

    本教程将引导你迈入ActiveMQ学习之旅的第一步,帮助你理解其核心概念和基本操作。 1. **ActiveMQ简介** Apache ActiveMQ是一个完全支持JMS 1.1和JMS 2.0规范的消息代理,它允许应用程序通过发送和接收消息来解耦...

    activemq学习(1)

    标题“activemq学习(1)”提示我们即将探讨的是Apache ActiveMQ,一个开源的消息中间件,它在Java消息服务(JMS)规范下运行。在这个初步的学习阶段,我们将主要了解ActiveMQ的基本概念、功能以及如何开始使用它。 ...

    activeMQ学习资料

    这个压缩包文件包含了一系列与ActiveMQ学习相关的资源,包括案例代码、案例说明文档和技术总结文档,非常适合初学者和进阶者深入理解和实践ActiveMQ。 1. **ActiveMQ基础概念** - **消息队列**:ActiveMQ的核心是...

    ActiveMQ学习笔记之一--ActiveMQ下载

    **ActiveMQ学习笔记之一——ActiveMQ下载** ActiveMQ是Apache软件基金会开发的一个开源消息中间件,它是基于Java消息服务(JMS)规范的,用于在分布式系统中传递消息。作为一个高性能、可伸缩且可靠的解决方案,...

    activemq学习(2) spring+activemq

    标题 "activemq学习(2) spring+activemq" 暗示了这篇内容将探讨如何在Spring框架中集成ActiveMQ,一个流行的开源消息代理和消息中间件。ActiveMQ允许应用程序之间通过消息传递进行通信,而Spring则是一个广泛使用...

    ActiveMQ学习总结.docx

    【ActiveMQ 学习总结】 在现代网络通讯中,HTTP 请求通常采用同步方式,基于请求-响应模式。这意味着客户端调用服务端接口后,必须等待服务端返回结果才能继续执行,这种方式称为同步调用。然而,同步调用的缺点...

    消息队列activemq学习笔记

    ### 消息队列Activemq学习笔记 #### MQ入门概述 消息队列(Message Queue,简称MQ)是一种用于在应用程序之间传递数据的机制。它允许应用之间通过发送消息进行通信,而无需直接调用对方。 ##### 前言:MQ=消息...

    Apache ActiveMQ学习笔记【原创:mq的方式有两种:点到点和发布/订阅】

    ### Apache ActiveMQ 学习笔记 #### 一、ActiveMQ简介与安装 ##### 1.1 ActiveMQ概述 Apache ActiveMQ 是一个完全支持 JMS 1.1 和 J2EE 1.4 规范的消息服务器。它适用于 Java 消息服务 (JMS),并且是一个开源项目...

    ActiveMQ学习笔记(二) JMS与Spring

    在本篇ActiveMQ学习笔记中,我们将探讨JMS(Java Message Service)与Spring框架的集成。JMS是一种标准API,用于在分布式环境中进行异步消息传递,而Spring框架则为开发人员提供了强大的依赖注入和管理服务的能力。...

    ActiveMQ学习

    ActiveMQ 是 Apache 开源项目的一款强大且流行的消息中间件,它的主要作用是通过解耦应用程序,减少服务器间的直接依赖,从而提升系统的可扩展性和容错性。消息中间件的引入使得服务之间通过消息传递进行通信,而...

Global site tag (gtag.js) - Google Analytics