`
mzh_2008beijing
  • 浏览: 233471 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JMS 之 ActiveMQ入门示例

 
阅读更多
企业中各项目中相互协作的时候可能用得到消息通知机制。比如有东西更新了,可以通知做索引。

在 Java 里有 JMS 的多个实现。其中 apache 下的 ActiveMQ 就是不错的选择。ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现。这里示例下使用 ActiveMQ

用 ActiveMQ 最好还是了解下 JMS


JMS 定义了两种方式:Quere(点对点);Topic(发布/订阅)。

ConnectionFactory 是连接工厂,负责创建Connection。

Connection 负责创建 Session。

Session 创建 MessageProducer(用来发消息) 和 MessageConsumer(用来接收消息)。

Destination 是消息的目的地。

详细的可以网上找些 JMS 规范(有中文版)。

下载 apache-activemq-5.3.0(http://activemq.apache.org/download.html ),解压,然后双击 bin/activemq.bat。运行后,可以在 http://localhost:8161/admin 观察。也有 demo, http://localhost:8161/demo 。把 activemq-all-5.3.0.jar 加入 classpath。

JMS发送端代码:
package com.mzh.common.jms;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnectionFactory;

public class Sender {
	public static void main(String[] args) throws Exception {      
	    ConnectionFactory connectionFactory = new ActiveMQConnectionFactory();      
	    Connection connection = connectionFactory.createConnection();      
	    connection.start();      
	     
	    Session session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);      
	    Destination destination = session.createQueue("queue-hello");      
	     
	    MessageProducer producer = session.createProducer(destination);      
	       
	    TextMessage message = session.createTextMessage();    
	       
	    message.setText("Hello,mazh!");      
	      
	    //通过消息生产者发出消息      
	    producer.send(message);   
	    
	    session.commit();      
	    session.close();      
	    connection.close();      
	}
}



JMS接收端代码:
package com.mzh.common.jms;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageListener;
import javax.jms.Session;
import javax.jms.TextMessage;

import org.apache.activemq.ActiveMQConnectionFactory;

public class Receiver implements MessageListener {
	
	private boolean stop=false;
	
	public void execute() throws Exception{
		ConnectionFactory connectionFactory = new ActiveMQConnectionFactory();      
	     
	    Connection connection = connectionFactory.createConnection();      
	    connection.start();      
	     
	    final Session session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);      
	    Destination destination = session.createQueue("queue-hello");      
	     
	    MessageConsumer consumer = session.createConsumer(destination);     
	    
	    consumer.setMessageListener(this);
	    session.commit();
	    while(!stop){
	    	Thread.sleep(5000);
	    }
	    
	    consumer.close();
	    session.close();      
	    connection.close();    
	}
	public void onMessage(Message message) {
		 TextMessage msg = (TextMessage) message;      
		 try {
			System.out.println("收到消息:" +msg.getText());
		} catch (JMSException e) {
			e.printStackTrace();
		}      
	}  
	public static void main(String[] args) throws Exception {      
	      new Receiver().execute();
	}
}


(声明:本文转自http://blog.csdn.net/caihaijiang/article/details/5903296,特别感谢原作者的无私分享。)
  • 大小: 39.3 KB
分享到:
评论

相关推荐

    JMS-ActiveMQ入门实例

    **JMS与ActiveMQ入门实例详解** Java消息服务(Java Message Service,简称JMS)是Java平台中用于创建、发送、接收和阅读消息的应用程序接口。它为应用程序提供了标准的接口,可以跨越多种消息中间件产品进行通信。...

    SpringActiveMQ入门示例

    SpringActiveMQ入门示例是关于如何在Java环境中利用Spring框架与Apache ActiveMQ集成的一个实践教程。这个示例主要适用于开发者想要了解如何在Spring应用中使用消息队列进行异步通信和解耦。在这个项目中,开发环境...

    activemq 入门示例代码

    **ActiveMQ 入门示例代码详解** ActiveMQ 是 Apache 开源组织开发的一款高效、可靠的开源消息中间件,它遵循 JMS(Java Message Service)规范,支持多种协议,如 AMQP、STOMP、OpenWire 等,广泛应用于分布式系统...

    jms之activeMQ 队列和广播模式例子(主要给初学者提供入门知识)

    这篇博客"jms之activeMQ 队列和广播模式例子"主要面向初学者,旨在提供ActiveMQ入门级的知识,通过实例解释队列(Queue)和主题(Topic)这两种基本的消息模式。 首先,我们要理解JMS中的队列和主题的区别。队列...

    ActiveMQ入门示例

    **ActiveMQ入门示例** Apache ActiveMQ是一款开源的消息中间件,它是Java消息服务(JMS)的实现,广泛应用于分布式系统中的异步通信。在这个入门示例中,我们将探讨如何使用ActiveMQ实现点对点(Point-to-Point)的...

    ActiveMQ入门及深入使用的例子

    ActiveMQ是中国最流行的开源消息中间件之一,它基于Java Message Service (JMS) 规范,为分布式系统提供高效、可靠的消息传递服务。本教程将引导你从基础到深入理解如何使用ActiveMQ,并通过实际的例子进行操作。 ...

    activeMQ简单入门案例

    ActiveMQ是中国最流行的开源消息中间件之一,它基于Java Message Service (JMS) 规范,为分布式系统提供高效、可靠的消息传递。本教程将引导你通过一个简单的入门案例了解如何使用ActiveMQ实现生产者与消费者的模式...

    activeMQ消息中间件入门示例,行行注释

    ActiveMQ是中国最流行的开源消息中间件之一,它基于Java Message Service (JMS) 规范,为应用程序提供了异步通信的能力。在这个“activeMQ消息中间件入门示例”中,我们将探讨如何设置基本的生产者和消费者来实现...

    HETF-ActiveMQ入门手册.zip

    在“HETF-ActiveMQ入门手册.doc”中,读者可能会找到如何安装和配置ActiveMQ,创建和管理队列与主题,设置安全策略,以及如何在实际项目中集成和使用ActiveMQ的详细步骤和示例。此外,文档可能还会涵盖性能调优技巧...

    memcached和activeMQ的JAVA示例代码

    描述中的"memcached 和 activeMQ 的入门级示例代码,JAVA eclipse工程"告诉我们这个项目是为初学者设计的,它包含了在Eclipse开发环境中运行的Java代码。Eclipse是一款广泛使用的Java集成开发环境(IDE),使得...

    Apache ActiveMQ 入门最简单例子

    在本文中,我们将深入探讨如何通过Apache ActiveMQ 5.8版本进行入门,以及如何构建一个简单的Master环境。 首先,我们要了解消息队列(Message Queue)的基本概念。消息队列是一种异步通信机制,它允许应用程序之间...

    ActiveMQ 入门实战(3)--SpringBoot 整合 ActiveMQ(csdn)————程序.pdf

    - **ActiveMQ**:Apache ActiveMQ 是一个开源的消息中间件,它实现了 Java Message Service (JMS) 规范,提供可靠的消息传递和队列管理。 - **JMS**:Java Message Service 是一个标准接口,用于在分布式环境中交换...

    ActiveMQ实践入门指南

    - **开发指南**: 对于开发人员而言,可以参考官方文档中的示例代码和API文档来构建基于ActiveMQ的应用程序。 #### 六、松耦合的重要性 - **定义**: 松耦合是指系统中的各个组件相对独立,互不影响。这种设计有助于...

    ActiveMQ的入门例子

    **ActiveMQ入门详解** ActiveMQ是Apache组织开发的一款开源的消息中间件,它是Java Message Service (JMS) 的实现,主要用于处理应用间的异步通信。在分布式系统中,ActiveMQ作为一个消息代理,允许应用程序通过...

    jms-activemq-example:使用Apache ActiveMQ的Belajar JMS

    提供者,即面向消息的中间件或充当代理的应用程序,示例之一是Apache ActiveMQ,RabitMQ,Hive MQTT,IBM MQ,JBoss Messaging等。 客户端,它是充当消息的发送者或接收者的应用程序。 生产者/发布者,它是充当...

    activeMQ-5.5 入门测试

    在这个“activeMQ-5.5 入门测试”项目中,我们可以深入理解ActiveMQ的基本概念、安装配置以及如何进行简单的测试。 一、ActiveMQ简介 ActiveMQ 是 Apache 软件基金会的产品,它提供了多种协议的支持,包括 OpenWire...

    activemq入门总结

    标题 "activemq入门总结" 暗示了本文将主要围绕Apache ActiveMQ,一个流行的开源消息代理和队列中间件进行讲解。ActiveMQ是基于Java Message Service (JMS) API 的,它允许应用程序在分布式环境中发送和接收消息,...

Global site tag (gtag.js) - Google Analytics