`
jetway
  • 浏览: 487674 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

ActiveMQ入门实例

    博客分类:
  • java
阅读更多

  ActiveMQ入门实例

 

在这里利用MQ作为消息中间件来发送点对点(PTP)的文本消息,以便对JMS有入门级的认识,需要下载activemq并进入${active-mq}\bin目录运行activemq.bat。需要activemq-all对应版本的jar和jms.jar。
消息发送方QSender通过键盘输入文本信息来发送消息,接收方QReceiver实现MessageListener接口异步接受消息并打印。代码如下

发送方

import java.io.BufferedReader;
import java.io.InputStreamReader;

import javax.jms.Queue;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.jms.QueueSender;
import javax.jms.QueueSession;
import javax.jms.Session;
import javax.jms.TextMessage;

import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.command.ActiveMQQueue;


public class QSender
{
public static void main(String[] args)
{
new QSender().send();
}

public void send()
{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
try
{
//init connection factory with activemq
QueueConnectionFactory factory=new ActiveMQConnectionFactory("tcp://127.0.0.1:61616");
//specify the destination
Queue queue=new ActiveMQQueue("queue.name.sample");
//create connection,session,producer and deliver message
QueueConnection conn=factory.createQueueConnection();
QueueSession session=conn.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
QueueSender sender=session.createSender(queue);
String msgText=null;
while(true)
{
    System.out.println("enter message to send or 'quit'");
    msgText=br.readLine();
    if("quit".equals(msgText))
   break;
    TextMessage msg=session.createTextMessage(msgText);
    sender.send(msg);
}
System.out.println("exiting..");
//close opened resources
br.close();
conn.close();
}
catch(Exception e)
{
e.printStackTrace();
System.exit(1);
}
}
}


接收方

import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.Queue;
import javax.jms.QueueConnection;
import javax.jms.QueueReceiver;
import javax.jms.QueueSession;
import javax.jms.Session;
import javax.jms.TextMessage;

import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.command.ActiveMQQueue;

// implements MessageListener in order to receiving asynchronous message
public class QReceiver implements MessageListener
{
//indicate whether stoping receiving
private boolean stop=false;
public static void main(String[] args)
{
new QReceiver().receive();
}

public void receive()
{
try
{
//the same as QSender
QueueConnection conn=new ActiveMQConnectionFactory("tcp://127.0.0.1:61616").createQueueConnection();
Queue queue=new ActiveMQQueue("queue.name.sample");
QueueSession session=conn.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
QueueReceiver receiver=session.createReceiver(queue);
//Sets the message consumer's MessageListener.
receiver.setMessageListener(this);
//ready to setup consumer,begin to receive message
conn.start();
while(!stop)
{
    Thread.sleep(1000);
}
System.out.println("exiting..");
conn.close();
}
catch(Exception e)
{
e.printStackTrace();
System.exit(1);
}
}
//called while receiving message
@Override
public void onMessage(Message msg)
{
try
{
String text=((TextMessage)msg).getText();
System.out.println(text);
if(text.equals("stop"))
    stop=true;
}
catch(JMSException e)
{
e.printStackTrace();
stop=true;
}

分享到:
评论

相关推荐

    JMS-ActiveMQ入门实例

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

    activemq入门实例,有源代码

    在“activemq入门实例”中,你将学习到以下几个关键知识点: 1. **ActiveMQ的基本概念**:ActiveMQ作为JMS提供商,它提供一个服务器端(broker)来存储和转发消息,客户端则通过连接到这个服务器来发送和接收消息。...

    消息队列-activemq入门实例.zip

    《ActiveMQ入门实例详解》 在信息技术领域,消息队列(Message Queue)作为一种重要的中间件技术,被广泛应用于系统解耦、异步处理以及负载均衡等场景。Apache ActiveMQ是Apache软件基金会开发的一款开源消息代理,...

    Activemq入门实例.pdf

    Apache ActiveMQ是一个开源的消息代理,遵循Java消息服务(JMS)规范,用于在不同的应用和平台之间进行可靠的消息传递。ActiveMQ能够支持多种传输协议,并能够处理大量消息的存储和转发。 从文件【部分内容】中,...

    ActiveMQ入门及深入使用的例子

    4. **实例化Message**:你可以创建TextMessage、ObjectMessage、MapMessage等不同类型的Message,每种类型对应不同的数据格式。 5. **连接管理和关闭**:在完成消息传递后,记得关闭Session、Connection和Producer...

    activemq入门实例

    本实例旨在引导初学者了解并熟悉ActiveMQ的基本概念、安装配置以及使用方法。 一、ActiveMQ概述 ActiveMQ是一个高性能、灵活且功能丰富的消息代理,支持多种消息协议,如OpenWire、STOMP、AMQP、MQTT等,使得不同...

    HETF-ActiveMQ入门手册.zip

    标题"**HETF-ActiveMQ入门手册.zip**"表明这是一个关于ActiveMQ的入门学习资源,可能包含详细的文档或教程,旨在帮助初学者理解并使用ActiveMQ。"HETF"可能是某个组织、项目或者教程系列的缩写。由于描述中并未提供...

    ActiveMQ实践入门指南_ActiveMQ实践入门指南_源码

    **ActiveMQ实践入门指南** Apache ActiveMQ是一款开源的消息中间件,它是Java消息服务(JMS)的实现...阅读提供的"ActiveMQ实践入门指南.pdf"文件,将为你提供更详细的步骤和实例,助你进一步提升ActiveMQ的应用技能。

    activeMQ简单入门案例

    本教程将引导你通过一个简单的入门案例了解如何使用ActiveMQ实现生产者与消费者的模式。 首先,我们需要了解ActiveMQ的基本概念。在消息队列中,生产者是发送消息的实体,而消费者则是接收和处理这些消息的实体。...

    Apache ActiveMQ 入门最简单例子

    要实现这一点,可以设置两个或多个ActiveMQ实例,通过网络连接形成集群,并配置适当的故障转移策略。 接下来,我们来创建一个简单的MQDemo1。这通常涉及编写代码来创建生产者和消费者。例如,在Java环境中,我们...

    activemq与spring整合发送jms消息入门实例

    本教程将深入探讨如何将这两个强大的工具结合在一起,以创建一个简单的发送JMS消息的入门实例。 首先,我们需要理解ActiveMQ的基本概念。ActiveMQ是Apache软件基金会开发的一个开源消息代理,它实现了JMS规范,提供...

    基于Maven的ActiveMQ的简单实例

    在本文中,我们将深入探讨如何使用Maven构建一个基于ActiveMQ的简单实例。ActiveMQ是Apache软件基金会开发...这个实例可以帮助初学者快速理解和入门ActiveMQ的基本用法,为进一步探索分布式系统中的消息通信打下基础。

    ActiveMQ入门

    【ActiveMQ入门】 Apache ActiveMQ 是一款开源的Java消息服务(JMS)提供商,属于Apache软件基金会的一员。它遵循JMS 1.1规范,旨在为分布式系统中的应用程序提供高效、可靠的异步通信。ActiveMQ的特性使得它成为...

    ActiveMQ使用入门.pdf

    【ActiveMQ使用入门】 ActiveMQ是一款基于Java的消息中间件,它是Apache基金会的开源项目,也是最早的JMS(Java消息服务)实现之一。JMS是一种标准,定义了在Java环境中访问消息中间件的接口,但并未具体实现。...

    ServiceMix Bundle Camel ActiveMQ环境搭建入门实例Demo

    本书适合入门学习,所有例子都有源码 1.Servicemix环境安装和配置 2.Eclipse开发环境安装搭建 3.用Bundle对应用组件模块化 4.Camel的应用和例子 Bundle之间的消息传递, Errorhandling 负载均衡 。。。。。。 5....

    activemq入门总结

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

Global site tag (gtag.js) - Google Analytics