- 浏览: 7252860 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (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的信息
在半年多的时间里,天天闲着,没有写blog也没有学习,现在要学习一些工作要使用的东西咯,公司使用的TongGTP和TongLinkQ最近一直不稳定,老大准备开发一个文件传输中间件,需要借鉴一些开源的mq框架学习和架构。
因为ActiveMQ是一个Apache的一个组件,比较活跃,并且有以下优点:
目前优点:
1.支持jms1.1和jms1.2等jms API。
2.容易跟当前的Spring框架整合。
3.容易JMX等整合,便于管理。
4.提供了高可靠性,可以采用主从服务的方式,Master broker只有在消息成功被复制到slave broker之后才会响应客户,保证消息的完整性。
5.高容错性提供了failover机制。
6.支持多语言种类,java,c#等。
7.支持消息的持久化为文件或者数据库信息。
8安全可靠,可以和jaas整合。
9.在消息发送方面效率高于jbossmq.
如下为一个简单的发送消息的方法:
需要的jar为:
<classpathentry kind="lib" path="src/activemq-all-5.5.0.jar"/>
<classpathentry kind="lib" path="src/slf4j-api-1.5.2-sources.jar"/>
<classpathentry kind="lib" path="src/slf4j-api-1.5.2.jar"/>
<classpathentry kind="lib" path="src/slf4j-simple-1.5.2.jar"/>
<classpathentry kind="lib" path="src/log4j-1.2.8.jar"/>
<classpathentry kind="lib" path="src/commons-dbcp-1.4.jar"/>
<classpathentry kind="lib" path="src/commons-pool-1.5.4.jar"/>
<classpathentry kind="lib" path="src/commons-collections-3.2.1.jar"/>
1.首先使用activemq.bat启动ActiveMQ的broker进程,监听默认的61616端口可以使用如下命令查看端口:
netstat -a
检查显示信息有无61616端口信息。
2.开发消息生产者代码如下:
package easyway.app.activemq.demo2; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import javax.jms.Connection; import javax.jms.Destination; import javax.jms.JMSException; import javax.jms.MessageProducer; import javax.jms.Session; import javax.jms.StreamMessage; import org.apache.activemq.ActiveMQConnectionFactory; /** * 消息的创建者 * @author longgangbai * */ public class StreamMsgProducer { public void send(File file) { ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(); Connection conn = null; try { conn = factory.createConnection(); conn.start(); Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE); Destination queue = session.createQueue("streamMsg"); MessageProducer producer = session.createProducer(queue); InputStream in = new FileInputStream(file); byte[] buffer = new byte[2048]; int c = -1; while ((c = in.read(buffer)) > 0) { StreamMessage smsg = session.createStreamMessage(); smsg.writeBytes(buffer, 0, c); producer.send(smsg); System.out.println("send: " + c); } in.close(); } catch (JMSException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (conn != null) { try { conn.close(); } catch (JMSException e) { e.printStackTrace(); } } } } public static void main(String[] args) { File file = new File("c:\\send.txt"); new StreamMsgProducer().send(file); } }
3.开发消息消费者
package easyway.app.activemq.demo2; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import javax.jms.Connection; import javax.jms.Destination; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.MessageConsumer; import javax.jms.Session; import javax.jms.StreamMessage; import org.apache.activemq.ActiveMQConnectionFactory; /** * 消息的消费者 * @author longgangbai * */ public class StreamMsgConsumer { public void receive() { ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(); Connection conn = null; try { conn = factory.createConnection(); conn.start(); Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE); Destination queue = session.createQueue("streamMsg"); MessageConsumer consumer = session.createConsumer(queue); OutputStream out = new FileOutputStream("c:\\receive.txt"); byte[] buffer = new byte[2048]; while (true) { Message msg = consumer.receive(5000); if (msg == null) { break; } if (msg instanceof StreamMessage) { StreamMessage smsg = (StreamMessage) msg; int c = smsg.readBytes(buffer); out.write(buffer, 0, c); System.out.println("Receive: " + c); } } out.close(); } catch (JMSException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (conn != null) { try { conn.close(); } catch (JMSException e) { e.printStackTrace(); } } } } public static void main(String[] args) { new StreamMsgConsumer().receive(); } }
4.分别启动消息消费者和生产者即可。
发表评论
-
ActiveMQ的拦截器插件
2011-07-22 09:29 6497ActiveMQ拦截器使用和原 ... -
ActiveMQ的各种表SQL的管理
2011-07-20 20:58 3399在ActiveMQ为了方便的切换数据库,更为了深入 ... -
ActiveMQ中advisory的使用和原理
2011-07-20 18:46 2854在ActiveMQ中的监控和管理也可以通过Advisory实现 ... -
ActiveMQ的异步转发(DispatchAsync)功能
2011-07-20 11:29 46581. 消息者异步转发功能 针对正常情况下,在一个 ... -
ActiveMQ 的独占消费(Exclusive Consumer)
2011-07-20 11:26 4053我们经常希望维持队列中的消息,按一定次序转发给消息者。然而当有 ... -
ActiveMQ5.5在Tomcat6.0中部署
2011-07-19 22:27 2885在ActiveMQ中监控管理Web组件为ActiveMQCon ... -
Window 下ActiveMQ端口冲突,负载均衡,主备配置
2011-07-17 16:03 5486在Java 学习中Window操作系 ... -
ActiveMQ中消息权限策略
2011-07-17 00:31 2619在ActiveMQ发送消息的时候,可以通过MessageAut ... -
ActiveMQ和Jetty整合使用
2011-07-07 22:49 5514在ActiveMQ中的activemq.b ... -
ActiveMQ 和Commons-Daemon整合
2011-07-07 20:13 2899在一般的java项目中,如果在linu ... -
关于ActiveMQ中怎么实现一对多发送消息讨论
2011-07-07 19:50 6019无 ... -
ActiveMQ 中ActiveMQBlobMessage的接收和发送
2011-07-05 10:47 5085在ActiveMQ中对比较大的消息采用一 ... -
ActiveMQ 和JAXWS整合
2011-07-04 22:02 2174在多个系统中可能考虑到远程访问等的,采用WebServ ... -
ActiveMQ-Camel的使用
2011-07-02 10:27 10158在一个电子系统中可能接受来自不同供应商的 ... -
ActiveMQ模板和Velocity整合使用
2011-07-01 19:50 2265ActiveMQ模板使用 在ActiveMQ中AMQ ... -
ActiveMQ中消息游标
2011-06-30 18:16 2622在 ActiveMQ 5.0的之前版本中,b ... -
ActiveMQ和Tomcat的整合应用
2011-06-30 17:00 11152在ActiveMQ的资源让容器Tomcat管理时 ... -
ActiveMQ关于文件传输需要注意哪些方面?
2011-06-18 22:11 6132最近一直在关注一些文件传输中间件的实现,想用Acti ... -
关于ActiveMQ中Session和Connection资源的管理
2011-06-15 23:43 25045配置完了持久化之后,我们就可以使用代码来发送 ... -
ActiveMQ中关于文件锁的机制的学习
2011-06-14 23:31 3242在ActiveMQ中提供了文件数据库机 ...
相关推荐
activemq 通过ajax发送接收消息简单例子
自己写的ActiveMQ简单demo,包括生产者、消费者之间发送消息、持久化到文件和持久化到数据库,期中持久化需要修改activemq.xml文件
与我写的博客配套的,springboot整合activemq的项目实例,看我写的博客,在搭配实例可以非常快速的学会并使用avtivemq。 在先学习整合之前先了解一下ActiaveMQ,ActiveMQ是早期MQ产品之一,是使用JAVA语言编写。大...
activemq-web-console的默认使用方式是通过在...2.一个是demo,有一些使用jms和activemq的简单例子。 3.还有一个fileserver,用来支持通过activemq发送文件时的中转服务器。blob message时配置的http文件服务器。
基于Spring+JMS+ActiveMQ+Tomcat,我使用的版本情况如下所示: •Spring 2.5 •ActiveMQ 5.4.0 •Tomcat 6.0.30 下面通过学习与配置,实现消息服务的基本功能:发送与接收。...下面简单说明实例。
我们首先会简单地介绍下这些例子的使用场景,然后深入讨论如何使用它们。如果你想温习这些例子,随时可以回来复读本章内容。 股票信息系统使用了发布/订阅模式。发布者会广播股票的价格信息到每一个感兴趣的订阅者。...
spring-jms使用queue发送消息简单例子,详细参考:http://blog.csdn.net/xiejx618/article/details/38849249
本文实例讲述了php 使用ActiveMQ发送消息,与处理消息操作。分享给大家供大家参考,具体如下: 我们以一个简单的用户注册为例,当用户点击注册按钮后,我们发送一个消息,后台php接收到该消息然后处理。 1.php代码...
这个非常简单的例子展示了如何设置 ActiveMQ、Camel 并从两个参与者发送 Ping/Pong 消息。 一个演员是 PingGenerator,它向 Pong 演员发送一个案例类。 PingGenerator 有一个 PingProducer,它使用请求/响应消息...
JMS 使您能够通过消息收发服务(有时称为消息中介程序或路由器)从一个 JMS 客户机向另一个 JMS客户机发送消息。消息是 JMS 中的一种类型对象,由两部分组成:报头和消息主体。报头由路由信息以及有关该消息的元...
本文主要介绍了两种java实现消息队列的方式,利用Spring消息模板发送消息和Apache ActiveMQ官方实例发送消息,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
简单的实现了jms的发送与接收,实现了异步通讯的功能 是一个与spring相结合的代码实例
集成ActiveMq,实现点到点发送、广播订阅功能,简单的小实例,未用到Springboot封装的ActiveTemplate,后续打算在写一个利用SpringBoot的ActiveTemplate在写一个demo。 #### SpringBoot-Dubbo-Provider (基于Dubbo...
这是一个简单的Spring JMS template例子,通过ActiveMQ中转消息,实现了发送和接收消息的基本功能 测试方法: 1:下载 ActiveMQ,并启动 2: 分别运行MessageReciver和MessageSender
发送消息,同时对文本进行少量修改,发送end-of-messages消息,最后关闭连接。 Tcp服务端与客户端的JAVA实例源代码 2个目标文件 摘要:Java源码,文件操作,TCP,服务器 Tcp服务端与客户端的JAVA实例源代码,一个简单...
发送消息,同时对文本进行少量修改,发送end-of-messages消息,最后关闭连接。 Tcp服务端与客户端的JAVA实例源代码 2个目标文件 摘要:Java源码,文件操作,TCP,服务器 Tcp服务端与客户端的JAVA实例源代码,一个简单...
集成ActiveMq,实现点到点发送,广播订阅功能,简单的小实例,未用到Springboot封装的ActiveTemplate,随后打算在写一个利用SpringBoot的ActiveTemplate在写一个演示。 SpringBoot-Dubbo-Provider(基于Dubbo的服务...