ActiveMQ学习和研究
文章平均质量分 81
longgangbai
这个作者很懒,什么都没留下…
展开
-
ActiveMQ简单实例发送消息
在半年多的时间里,天天闲着,没有写blog也没有学习,现在要学习一些工作要使用的东西咯,公司使用的TongGTP和TongLinkQ最近一直不稳定,老大准备开发一个文件传输中间件,需要借鉴一些开源的mq框架学习和架构。因为ActiveMQ是一个Apache的一个组件,比较活跃,并且有以下优点: 目前优点:1.支持jms1.1和jms1.2等jms API。...原创 2011-05-31 07:48:36 · 208 阅读 · 0 评论 -
ActiveMQ关于文件传输需要注意哪些方面?
最近一直在关注一些文件传输中间件的实现,想用ActiveMQ实现一些具体的功能。经过几周的ActiveMQ的学习,以及中间件必须一些功能。发现一些问题自己还是不能搞懂,希望网上一些,大牛拍一下砖,支持一下。1.在消息中间件的消息的路由的算法怎么实现的。 如A、B、C、D、E 五个节点上都是提供消息服务的 AMQ ,五个节点连通成一个网络,连接到 A 节点的客户端...2011-06-18 22:11:00 · 195 阅读 · 0 评论 -
ActiveMQ和Tomcat的整合应用
在ActiveMQ的资源让容器Tomcat管理时候,可以在Tomcat的配置文件中添加相关的配置信息。说明:Tomcat示例版本6.0.14,其它版本在配置上可能有一些差异1、准备jar包:将ActiveMQ lib目录下的5个jar包复制到Tomcat lib目录下:activemq-core-5.1.0.jaractivemq-web-5.1...原创 2011-06-30 17:00:46 · 374 阅读 · 0 评论 -
ActiveMQ中消息游标
在 ActiveMQ 5.0的之前版本中,broker 会把正在传输的消息保存在内存中。使用这种内存模型,当一个消费者消费消息的速度跟不上生产者生产消息的速度的时候,会是 broker 内存中维护的正在传输的消息数量迅速增长,最终到达最大限额。当到达此最大限额后,broker 就不能接受来自客户端的消息,这样生产者就会被阻塞直到 broker 的内存中有保存消息的空间为止。 ...原创 2011-06-30 18:16:49 · 116 阅读 · 0 评论 -
ActiveMQ模板和Velocity整合使用
ActiveMQ模板使用 在ActiveMQ中AMQ将消息存在文件中的方法,将每一个消息创建一个对象,使用Velocity模板将信息替换之后追加到文件中。 在AMQJournalTool中关于各种信息的格式如下:private String messageFormat = "${location.dataFileId},${location.offset}|${type}|${...原创 2011-07-01 19:50:31 · 119 阅读 · 0 评论 -
ActiveMQ-Camel的使用
在一个电子系统中可能接受来自不同供应商的各种订单信息,不同类型的订单走的流程不尽相同,为了快速处理各种不同的订单完成不同的业务。特定义不同的路由信息。根据路由信息的不同,将消息进行不同的处理。如果采用ActiveMQ那么最好采用apache-camel整合,使不同的消息根据不同的流程自动处理到不同的队列中去。 采用的jar文件如下:<?xml version...原创 2011-07-02 10:27:03 · 447 阅读 · 0 评论 -
ActiveMQ 和JAXWS整合
在多个系统中可能考虑到远程访问等的,采用WebService方式和远程系统的JMS消息系统交互。本文采用ActiveMQ和JAXWS实现。客户端通过webservice将消息发送给服务端的消息队列。package easyway.app.activemq.ws;import javax.jws.WebMethod;import javax.jws.WebParam;im...原创 2011-07-04 22:02:49 · 129 阅读 · 0 评论 -
ActiveMQ 中ActiveMQBlobMessage的接收和发送
在ActiveMQ中对比较大的消息采用一种ActiveMQBlobMessage方式发送的时候,因为可采用策略的不同而已使用HTTP协议字节流,文件系统的读文件,FTP协议的方式实现发送和接收文件。上传和下载的数据流执行过程: 在ActiveMQ中采用策略模式定义如下接口:上传策略接口BlobUploadStrategy:public ...原创 2011-07-05 10:47:09 · 574 阅读 · 0 评论 -
关于ActiveMQ中怎么实现一对多发送消息讨论
无论采用哪种JMS 组件,JMS 支持两种截然不同的消息传送模型:PTP(即点对点模型)和Pub/Sub(即发布/订阅模型),分别称作:PTP Domain 和Pub/Sub Domain。 PTP(使用Queue即队列目标) 消息从一个生产者传送至一个消费者。在此传送模型中,目标是一个队列。消息首先被传送至队列目标,然后根据队列传送策略...2011-07-07 19:50:16 · 684 阅读 · 0 评论 -
ActiveMQ 和Commons-Daemon整合
在一般的java项目中,如果在linux中实现进程在后台执行比较简单,可以采用nohup cmd 或者sh cmd &等多种方式实现,进行在后台执行。但是在window操作系统中就比较困难了,需要实现相关的类。如在tomcat,jboss的启动之后,端口一直开放着。 常用实现方式实现Commons-Daemon中的Daemon接口实现相关的方式...原创 2011-07-07 20:13:05 · 132 阅读 · 0 评论 -
ActiveMQ和Jetty整合使用
在ActiveMQ中的activemq.bat启动的时候,通过jetty启动ActiveMQ的管理控制台界面。在一般的Java应用程序中如果想让WEB应用程序启动,那么比较简单的方式就是通过使用jetty启动web应用程序。具体代码如下:package org.apache.activemq.tool;import org.eclipse.jetty.serve...原创 2011-07-07 22:49:45 · 1608 阅读 · 0 评论 -
ActiveMQ中消息权限策略
在ActiveMQ发送消息的时候,可以通过MessageAuthorizationPolicy验证消息是否可以发送到消息消费者。package org.apache.activemq.security;import org.apache.activemq.broker.ConnectionContext;import org.apache.activemq.command.Mess...原创 2011-07-17 00:31:51 · 302 阅读 · 0 评论 -
Window 下ActiveMQ端口冲突,负载均衡,主备配置
在Java 学习中Window操作系统下,类似ActiveMQ,Tomcat服务开启服务之后,服务在后台执行,经常遇到端口被占用该怎么办呢?可能多少童鞋都是进行修改端口或者重启相关的服务,但是重新启动之后,相关的端口仍然被占用。我们可能查找进程并kill进程。在window系统下: 查看进程号: netstat -ano | find "被占...原创 2011-07-17 16:03:41 · 224 阅读 · 0 评论 -
ActiveMQ5.5在Tomcat6.0中部署
在ActiveMQ中监控管理Web组件为ActiveMQConsole,在一些特殊的情况下为了减轻服务器的压力。可以将监控管理的Web部署到其他Web容器上如Jetty,Tomcat等。 在Tomcat6.0配置过程如下:1. 在Apache官方网站上下载activemq-web-console.war。http://repo1.maven.org/maven2/org...原创 2011-07-19 22:27:19 · 77 阅读 · 0 评论 -
ActiveMQ 的独占消费(Exclusive Consumer)
我们经常希望维持队列中的消息,按一定次序转发给消息者。然而当有多个JMS Session和消息消费者实例的从同一个队列中获取消息的时候,就不能保证消息顺序处理。因为消息被多个不同线程并发处理着。在ActiveMQ4.x中可以采用Exclusive Consumer或者Exclusive Queues,避免这种情况,Broker会从消息队列中,一次发送消息给一个消息消费者来保证顺序。配置如下...原创 2011-07-20 11:26:33 · 153 阅读 · 0 评论 -
ActiveMQ的异步转发(DispatchAsync)功能
1. 消息者异步转发功能 针对正常情况下,在一个fast consumer的时候,为了避免同步和队列的切换采用设置:dispatchAsync=true(默认)。在slow consumer的时候,可能服务端就可能阻塞了。为了提高吞吐量和改变slow consumer消息的现状,可能需要设置为false; A.ConnectionFactory级别配置: ((Activ...原创 2011-07-20 11:29:47 · 619 阅读 · 0 评论 -
ActiveMQ中advisory的使用和原理
在ActiveMQ中的监控和管理也可以通过Advisory实现对消息生产者和消息消费者以及队列的监控。Advisory实质通过事件监听实现。调用过程的序列图如下: 1.在Advisory中实现对队列目标的监控:A.队列目标的事件类:DestinationEvent继承EventObject实现对DestinationInfo的监控。B.通过队列目标的监听实现对队列事件的监控...原创 2011-07-20 18:46:22 · 315 阅读 · 0 评论 -
ActiveMQ的各种表SQL的管理
在ActiveMQ为了方便的切换数据库,更为了深入了解ActiveMQ中SQL语句的详细的信息,可以通过Statements获取各种SQL语句。在ActivMQ第一次加载的时候,通过Statements生产响应的Spring Bean,加载到内存中。在ActiveMQ的管理和监控的时候,从内容获取相关的SQL语句,简化了ActiveMQ的消息的管理和监控。 package co...原创 2011-07-20 20:58:05 · 167 阅读 · 0 评论 -
关于ActiveMQ中Session和Connection资源的管理
配置完了持久化之后,我们就可以使用代码来发送和接收ActiveMQ中的消息了,我这里配置的持久化是KahaDB。需要导入的jar包:一段发送消息的代码: Java 1234567891011121314151617181920...原创 2011-06-15 23:43:32 · 1684 阅读 · 0 评论 -
ActiveMQ中关于文件锁的机制的学习
在ActiveMQ中提供了文件数据库机制的数据库kahadb,也即基于文件形式的数据库,文件的中操作必须采用文件锁的机制,那么是怎么实现的呢?原理如下:readFile = new RandomAccessFile(file, "rw"); FileLock lock = readFile.getChannel().tryLock(0, readFile.get...原创 2011-06-14 23:31:29 · 588 阅读 · 0 评论 -
基于Tomcat容器的ActiveMQ简单实例
在tomcat中配置ConnectionFactory和ActiveMQQueue,通过JNDI方式实现ActiveMQ。因为JNDI配置在tomcat容器中所以必须通过jsp访问tomcat容器。首先在在tomcat的lib目录添加如下jar文件。<classpathentry kind="lib" path="src/activemq-all-5.5.0.jar"...原创 2011-05-31 08:07:59 · 102 阅读 · 0 评论 -
ActiveMQ基于Queue的发送消息模式
activemq既然是基于jms的就存在所谓的点对点模式和发布订阅模式,下面编写基于queue的发送消息方式。启动activemq的broker进程。代码如下:package easyway.app.activemq.demo14;import javax.jms.JMSException;import javax.jms.Queue;import javax...原创 2011-05-31 08:26:41 · 145 阅读 · 0 评论 -
ActiveMQ消息持久化到数据库
本人实现的功能为activemq将消息持久化到数据库的方法:1:前言 这一段给公司开发消息总线有机会研究ActiveMQ,今天撰文给大家介绍一下他的持久化消息。本文只介绍三种方式,分别是持久化为文件,MYSql,Oracle。下面逐一介绍。A:持久化为文件 这个你装ActiveMQ时默认就是这种,只要你设置消息为持久化就可以了。涉及到的配置和代码有&...原创 2011-05-31 16:08:21 · 347 阅读 · 0 评论 -
ActiveMQ基于derby数据库的spring整合
服务端代码:package easyway.activemq.app.demo3;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import javax.jms.Connection;import j...原创 2011-05-31 18:17:08 · 111 阅读 · 0 评论 -
ActiveMQ 连接池工厂
package easyway.activemq.app.demo4;import java.util.Date;import javax.jms.JMSException;import javax.jms.MapMessage;import javax.jms.Message;import javax.jms.Session;import org.spring...原创 2011-05-31 21:07:09 · 229 阅读 · 0 评论 -
ActiveMQ Spring 整合持久化到数据库的实现
本文主要目的实现activemq和spring将消息写入数据库的方法:activemq.xml的内容如下:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/...原创 2011-06-03 23:24:44 · 260 阅读 · 0 评论 -
ActiveMQ 中端口和消息的管理和调度CronParser测试问题
在Activemq的开发中经常中需要手动启动activemq的监听进程,需要启动activemq.bat命令。遇到端口被占用的情况,我们可以自动以使用内嵌式Broker,减少对activemq默认端口的依赖: 在开发中activemq使用的默认的端口为:61616默认的采用的传递方式为:tcp://localhost:81616 可以使用如下代码: ...原创 2011-06-03 23:33:27 · 158 阅读 · 0 评论 -
ActiveMQ 定时调度的使用查看任务消息
当我们发送消息之后,如果想查看当前有多少消息尚未发送可以自己写一些代码实现,可以写一些定时获取任务或者发送消息的实现,必须使用SchedulerBroker,JobScheduler,测试实现如下:package easyway.app.activemq.demo.schedules;import java.io.File;import java.util.List;im...原创 2011-06-03 23:58:08 · 1203 阅读 · 0 评论 -
ActiveMQ 基于JAAS的管理机制
在配置消息在发送过程中,非法用户拦截消息,采用JAAS的安全管理机制来判断消息。 activemq.xml配置如下:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="htt...原创 2011-06-04 21:29:19 · 91 阅读 · 0 评论 -
ActiveMQ中的KahaDB消息日志的恢复机制和可靠性
ActiveMQ很好的支持了消息的持久性(Persistence)。消息持久性对于可靠消息传递来说应该是一种比较好的方法,有了消息持久化,即使发送者和接受者不是同时在线或者消息中心在发送者发送消息后宕机了,在消息中心重新启动后仍然可以将消息发送出去,如果把这种持久化和ReliableMessaging结合起来应该是很好的保证了消息的可靠传送。 消息持久性的原理很简...原创 2011-06-04 21:30:46 · 395 阅读 · 0 评论 -
ActiveMQ VS HornetQ
ActiveMQ VS HornetQActiveMQ和HornetQ的简介: ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位。 HornetQ...原创 2011-06-05 20:14:24 · 263 阅读 · 0 评论 -
ActiveMQ BlobMessage发送消息的测试
最近项目中将发送文件,但是测试采用字节流ByteMessage和BlobMessage ,StreamMessage的学习应用,并测试。下面是BlobMessage测试的情况。但是在测试的时候发送word和pdf文档传送之后,不能打开。不知道为什么要,具体怎么处理之后可以。但是发送文本类文件没有任何问题。消息的发送者:package easyway.app.activem...原创 2011-06-05 23:45:34 · 223 阅读 · 0 评论 -
ActiveMQ Conneccton中的队列的监听的使用和测试
使用DestinationSource监听当前的Connection中的queue和topic的个数和信息的监听的时间。 package easyway.app.activemq.demo.monitors;import java.util.ArrayList;import java.util.List;import java.util.Set;import java...原创 2011-06-07 15:56:03 · 191 阅读 · 0 评论 -
ActiveMQ 持久化消息数据库信息
最近有网友问我,ActiveMQ持久化的中表结构是什么,表需要人工创建吗?我告诉他们不需要,ActiveMQ会帮助我们生成的。只需要制定采用的数据库名称并,创建数据库即可。以为为ActiveMQ采用MySQL5.1持久化产生的SQL语句:持久化的代码实现为:http://topmanopensource.iteye.com/blog/1066383持久化mysql数据库的...原创 2011-06-07 20:46:00 · 97 阅读 · 0 评论 -
activemq消息队列的大小配置的配置
在网上有人问,如何在activemq.xml里面配置消息队列的大小,这样才保证队列不会溢出!如果采用非持久化消息,那么当大量发送失败时候,首先大量占用内存。造成消息堆积,容易造成内存溢出,所以个人比较倾向于持久化消息的同时配合其他方式的master/slave或者failover机制,尽量保持消息的畅通。当我们开发的Java的使用应用程序的时候,有的时候需要为java应用指...原创 2011-06-07 21:18:17 · 5134 阅读 · 0 评论 -
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息
How can I monitor ActiveMQIn ActiveMQ 4.x you can monitor the broker to see what destinations are being used, their activity along with connections and subscriptions using the following toolsJM...原创 2011-06-08 13:56:08 · 297 阅读 · 0 评论 -
ActiveMQ的JMX监控使用
package easyway.app.activemq.demo3;import javax.management.ObjectName;import org.apache.activemq.broker.jmx.BrokerViewMBean;import org.apache.activemq.web.RemoteJMXBrokerFacade;import org...原创 2011-06-10 17:26:06 · 775 阅读 · 0 评论 -
ActiveMQ的拦截器插件
ActiveMQ拦截器使用和原理 在ActiveMQ中使用拦截器和过滤器的使用多采用插件的形式实现,继承BrokerFilter实现BrokerPlugin接口类。BrokerFilter实质一个实现Broker接口的类。publicinterface BrokerPlugin { /** *Installsthepluginintotheintercept...原创 2011-07-22 09:29:16 · 488 阅读 · 0 评论