- 浏览: 7340064 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1546)
- 企业中间件 (236)
- 企业应用面临的问题 (236)
- 小布Oracle学习笔记汇总 (36)
- Spring 开发应用 (54)
- IBatis开发应用 (16)
- Oracle基础学习 (23)
- struts2.0 (41)
- JVM&ClassLoader&GC (16)
- JQuery的开发应用 (17)
- WebService的开发应用 (21)
- Java&Socket (44)
- 开源组件的应用 (254)
- 常用Javascript的开发应用 (28)
- J2EE开发技术指南 (163)
- EJB3开发应用 (11)
- GIS&Mobile&MAP (36)
- SWT-GEF-RCP (52)
- 算法&数据结构 (6)
- Apache开源组件研究 (62)
- Hibernate 学习应用 (57)
- java并发编程 (59)
- MySQL&Mongodb&MS/SQL (15)
- Oracle数据库实验室 (55)
- 搜索引擎的开发应用 (34)
- 软件工程师笔试经典 (14)
- 其他杂项 (10)
- AndroidPn& MQTT&C2DM&推技术 (29)
- ActiveMQ学习和研究 (38)
- Google技术应用开发和API分析 (11)
- flex的学习总结 (59)
- 项目中一点总结 (20)
- java疑惑 java面向对象编程 (28)
- Android 开发学习 (133)
- linux和UNIX的总结 (37)
- Titanium学习总结 (20)
- JQueryMobile学习总结 (34)
- Phonegap学习总结 (32)
- HTML5学习总结 (41)
- JeeCMS研究和理解分析 (9)
最新评论
-
lgh1992314:
[u][i][b][flash=200,200][url][i ...
看看mybatis 源代码 -
尼古拉斯.fwp:
图片根本就不出来好吧。。。。。。
Android文件图片上传的详细讲解(一)HTTP multipart/form-data 上传报文格式实现手机端上传 -
ln94223:
第一个应该用排它网关吧 怎么是并行网关, 并行网关是所有exe ...
工作流Activiti的学习总结(八)Activiti自动执行的应用 -
ZY199266:
获取不到任何消息信息,请问这是什么原因呢?
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息 -
xiaoyao霄:
DestinationSourceMonitor 报错 应该导 ...
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息
在下载activeMq-all-5.2.jar.开发;
本实例来自apache 的官方网站:
package cn.com.vnvtrip.apachemq;
import javax.jms.Connection;
import javax.jms.DeliveryMode;
import javax.jms.Destination;
import javax.jms.ExceptionListener;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnectionFactory;
/**
* 此代码来自官方网站: 自己添加注释:
* 总结:使用JMS的步骤:
* (1)创建一個JMS连接工厂
* (2)创建 一個JMS连接并启动连接
* (3)创建一個JMS的会话并建立相应的JMS目标對象 (队列)
* (4)通过相应的消息创建者创建消息和消息消费者接受消息。
*
* Hello world!
*/
public class App {
public static void main(String[] args) throws Exception {
thread(new HelloWorldProducer(), false);
thread(new HelloWorldProducer(), false);
thread(new HelloWorldConsumer(), false);
Thread.sleep(1000);
thread(new HelloWorldConsumer(), false);
thread(new HelloWorldProducer(), false);
thread(new HelloWorldConsumer(), false);
thread(new HelloWorldProducer(), false);
Thread.sleep(1000);
thread(new HelloWorldConsumer(), false);
thread(new HelloWorldProducer(), false);
thread(new HelloWorldConsumer(), false);
thread(new HelloWorldConsumer(), false);
thread(new HelloWorldProducer(), false);
thread(new HelloWorldProducer(), false);
Thread.sleep(1000);
thread(new HelloWorldProducer(), false);
thread(new HelloWorldConsumer(), false);
thread(new HelloWorldConsumer(), false);
thread(new HelloWorldProducer(), false);
thread(new HelloWorldConsumer(), false);
thread(new HelloWorldProducer(), false);
thread(new HelloWorldConsumer(), false);
thread(new HelloWorldProducer(), false);
thread(new HelloWorldConsumer(), false);
thread(new HelloWorldConsumer(), false);
thread(new HelloWorldProducer(), false);
}
public static void thread(Runnable runnable, boolean daemon) {
Thread brokerThread = new Thread(runnable);
brokerThread.setDaemon(daemon);
brokerThread.start();
}
/**
* 消息的创建者的应用
*
* @author longgangbai
*
*/
public static class HelloWorldProducer implements Runnable {
public void run() {
try {
// 创建一個ActionMQ的连接工厂
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
"vm://localhost");
// 创建一個ActionMQ连接工厂
Connection connection = connectionFactory.createConnection();
connection.start();
// 创建一個ActionMQ会话
Session session = connection.createSession(false,
Session.AUTO_ACKNOWLEDGE);
// 创建一個连接ActionMQ的目标(Topic or Queue)
Destination destination = session.createQueue("TEST.FOO");
// 创建一個消息的创建者从会话中队列目标中
MessageProducer producer = session.createProducer(destination);
producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
// 创建一個消息
String text = "Hello world! From: "
+ Thread.currentThread().getName() + " : "
+ this.hashCode();
TextMessage message = session.createTextMessage(text);
// 发送一個消息
System.out.println("Sent message: " + message.hashCode()
+ " : " + Thread.currentThread().getName());
producer.send(message);
// 关闭会话和连接
session.close();
connection.close();
} catch (Exception e) {
System.out.println("Caught: " + e);
e.printStackTrace();
}
}
}
/**
* 消息的消费者
*
* @author longgangbai
*
*/
public static class HelloWorldConsumer implements Runnable,
ExceptionListener {
public void run() {
try {
// 创建一個JMS的连接工厂的
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
"vm://localhost");
// 创建一個JMS的连接
Connection connection = connectionFactory.createConnection();
// 启动连接對象
connection.start();
connection.setExceptionListener(this);
// 创建会话
Session session = connection.createSession(false,
Session.AUTO_ACKNOWLEDGE);
// 创建目标的對象 Create the destination (Topic or Queue)
Destination destination = session.createQueue("TEST.FOO");
// 创建消息的消费者的 Create a MessageConsumer from the Session to the
// Topic or
// Queue
MessageConsumer consumer = session.createConsumer(destination);
// 接受相应的消息對應 Wait for a message
Message message = consumer.receive(1000);
if (message instanceof TextMessage) {
TextMessage textMessage = (TextMessage) message;
String text = textMessage.getText();
System.out.println("Received: " + text);
} else {
System.out.println("Received: " + message);
}
// 关闭会话和连接
consumer.close();
session.close();
connection.close();
} catch (Exception e) {
System.out.println("Caught: " + e);
e.printStackTrace();
}
}
/*
* 异步消息异常处理 (non-Javadoc)
*
* @see javax.jms.ExceptionListener#onException(javax.jms.JMSException)
*/
public synchronized void onException(JMSException ex) {
System.out.println("JMS Exception occured. Shutting down client.");
}
}
}
发表评论
-
[转]Jython初探
2014-01-07 11:19 2409转载自: ... -
ireport导出各种格式(pdf,excel,word,html,print)
2013-05-02 16:59 10050import java.io.IOException; ... -
【转】使用Atomikos Transactions Essentials实现多数据源JTA分布式事务
2013-04-03 12:11 6794Atomikos数据源配置方法有三种 Atomikos数 ... -
【转】Apache Thrift入门1-架构&介绍
2013-04-02 13:26 2039Thrift 是什么? Thrift ... -
【转】Thrift入门及Java实例演示
2013-04-02 12:47 2587目录: 概述 下载配置 基本概念 数据类型 ... -
【转】Thrift入门试用
2013-04-02 12:39 2182在新的项目中公司在平台内部系统间使用Thrift通讯,都没 ... -
【转】thrift的安装
2013-04-02 12:38 2092一、ubuntu下thrift的安装 1.下载源代码 ... -
GIS的学习(二十五)geoserver wms中的各种操作API详细讲解和使用
2012-09-10 17:42 9709官方geoserver中WMS服务中几种操作的API的详细说明 ... -
POI3.8组件研究(九)----让POI架起Java与Office之间的桥梁
2012-06-17 14:37 4328本文将阐述如何用POI来读取/写入完整的Excel文 ... -
POI3.8组件研究(八)--基于SXSSF (Streaming Usermodel API)的写文件
2012-06-17 14:17 14436在POI3.8中SXSSF仅仅支持excel2 ... -
POI3.8组件研究(七)--基于XSSF and SAX (Event API)事件的解析
2012-06-17 14:00 5368针对Event API事件解析仅仅支持excel97~ ... -
POI3.8组件研究(六)---struts2.0 视图层文件页面点击导出
2012-06-17 13:23 2418在struts2.0中点击导出按钮将信息导出为exce ... -
POI3.8组件研究(五)---excel文件内容抽取为文本
2012-06-15 09:15 4366在一个搜索引擎的使用中需要将各种文件转化为文本 ... -
POI3.8组件研究(四)--Event API (HSSF Only)事件的解析
2012-06-14 17:37 9064通过eventusermodel读取文件 ... -
POI3.8组件研究(二)---基于User API (HSSF and XSSF)解析Excel2003和2007文件
2012-06-14 09:46 3218在解析生成excel2003和 ... -
POI3.8组件研究(一)---基于User API (HSSF and XSSF)解析Excel2003和2007文件
2012-06-14 09:29 5355在以前的Excel解析时候,我们通常需要编写Ex ... -
EasyPOI的使用
2012-02-12 17:06 5320EasyPOI 的目的是封装了poi的写excel的API。 ... -
Commons-net FTPClient上传下载的封装
2011-08-25 08:30 11512在项目中使用到FTP功能,于是采用类似Spri ... -
Java将第三方jar文件打包到一个jar中的插件(fatjar)
2011-08-19 22:17 4337<!-- google_ad_section_star ... -
Apache的Commons-configuration自动加载特性
2011-07-24 19:04 4083在一些项目可能配置文件经常变化,配置文件的类型可能 ...
相关推荐
ActiveMQ是Apache软件基金会开发的一个开源消息代理,它实现了JMS规范,允许分布式系统中的组件之间进行异步通信。JMS是一个为Java平台设计的消息传递标准,它提供了一种标准接口,使得应用程序可以发送和接收消息,...
同时,还需要编写一个邮件服务类,该类使用JMS模板发送消息到队列。而在消费者端,需要监听这个队列,接收到消息后执行实际的邮件发送操作,如使用JavaMail API发送邮件。 总的来说,这个项目提供了一种实用的方法...
通过以上讲解,我们可以看出,ActiveMQ的发送消息并接收返回信息涉及到JMS规范的多个层面,包括连接管理、会话创建、消息生产和消费,以及消息确认机制。理解并掌握这些知识点对于构建健壮、高效的分布式系统至关...
通过这个视频系列,你不仅能够掌握ActiveMQ的基本操作,还能深入理解JMS规范,从而在实际项目中更有效地利用消息中间件进行解耦和异步通信。此外,了解ActiveMQ的性能调优和故障排查技巧也是提升系统稳定性的关键,...
"JMS之Spring + ActiveMQ实现消息队列"涉及到的关键知识点包括:Spring框架的JMS支持、ActiveMQ的使用、ConnectionFactory的配置、JmsTemplate和MessageListener的实现,以及消息队列在解决系统解耦和异步处理中的...
4. **消息生产者(Message Producer)**:负责创建和发送消息到队列或主题的组件。 5. **消息消费者(Message Consumer)**:从队列或主题接收并处理消息的组件。 6. **消息代理(Message Broker)**:如ActiveMQ...
3. **创建消息服务**:在Java后端,你可以使用Spring的`JmsTemplate`来发送消息。同时,你也可以定义一个监听器类,通过实现`MessageListener`接口来接收消息。 4. **Flex客户端**:在Flex客户端,使用Blazeds提供...
总的来说,本示例旨在演示如何利用ActiveMQ作为JMS实现,通过编写Java代码发送消息。理解JMS和ActiveMQ的工作原理及其API的使用,对于构建高效、可靠的分布式应用程序至关重要。通过实践和探索"JMS.txt"中的代码,你...
ActiveMQ是Apache软件基金会开发的一款开源消息代理,它实现了JMS规范,允许应用程序之间进行异步通信。JMS是一种标准接口,用于Java平台上的消息传递,提供了可靠的消息传递机制,确保消息的顺序和持久性,同时也...
JMS(使用消息中介:ActiveMQ) JMS为JAVA开发者提供了一个与消息中介进行交互,以及发送和接收消息的标准API,而且每一个消息中介的实现都会支持JMS。(即JMS为所有消息中介提供了统一接口);JmsTemplate是Spring...
2. **MessageProducer**: 这个接口用于创建和发送消息到目的地。开发者可以通过调用其`createTextMessage()`或`createObjectMessage()`方法创建不同类型的消息。 3. **MessageConsumer**: 它用于接收从目的地发送来...
2. **JMS 使用 ActiveMQ 传送文件.doc** - 这个文档应该直接涵盖了如何使用ActiveMQ进行文件传输的具体步骤,可能包括了创建消息、设置目的地、发送和接收文件的代码示例,以及如何处理错误和异常的情况。...
创建一个Spring Boot的Bean,该Bean使用`JmsTemplate`来发送消息到指定的ActiveMQ主题或队列: ```java @Autowired private JmsTemplate jmsTemplate; public void sendMessage(String message, String ...
4. **创建和发送消息**:在会话上创建生产者,选择合适的目标(队列或主题),然后发送消息。 5. **接收消息**:对于点对点模型,创建消费者并监听队列;对于发布/订阅模型,创建订阅者并订阅主题。接收到消息后,...
Spring的`JmsTemplate`可以用来方便地发送消息到指定的队列或主题。例如: ```java @Autowired private JmsTemplate jmsTemplate; public void sendMessage(String message) { jmsTemplate.convertAndSend(...
2. **异步处理**:通过集成ActiveMQ,可以创建一个消息生产者,将发送邮件的任务作为一个消息放入队列,由后台消费者处理。这样,主流程不会被邮件发送阻塞,提高了系统的响应速度。 3. **消费者端**:在消费者端,...
【描述】:本文旨在解析activeMQ消息中间件在发送消息过程中的工作原理,包括同步发送和异步发送两种方式。activeMQ的消息发送涉及到客户端与broker之间的交互,对于消息的可靠性和性能有着直接影响。 【标签】:...
Apache ActiveMQ是业界广泛使用的一款开源消息中间件,它基于Java Message Service (JMS) 规范,提供了高效、可靠的异步通信能力。在“activeMQ-jms”这个压缩包中,我们通常会找到Apache ActiveMQ 5.13.4版本的相关...
例如,使用`javax.jms.ConnectionFactory`创建连接,`javax.jms.Queue`或`javax.jms.Topic`定义目的地,`javax.jms.MessageProducer`发送消息,`javax.jms.MessageConsumer`接收消息。消息可以是TextMessage、...
现在,我们可以启动Spring Boot应用,并通过`MessageSender.sendMessage()`方法发送消息。`MessageReceiver`会自动监听并接收这些消息。 在实际开发中,你可以根据需求调整`MessageReceiver`的处理逻辑,例如添加...