Active MQ教程和配置


ActiveMQ -陈波 Active MQ是一个基于 Apcache 2.0 licenced 发布,开放源码的 JMS 产品。 其特点为: 1) 提供点到点消息模式和发布/订阅消息模式; 2) 支持 JBoss、Geronimo 等开源应用服务器,支持Spring 框架的消息驱动; 3) 新增了一个 P2P 传输层,可以用于创建可靠的 P2P JMS 网络连接; 4) 拥有消息持久化、事务、集群支持等 JMS 基础设施服务。 Apache activemq 是最受欢迎和最强大的开源消息中间件。Apache activemq 是非常 快速的,支持多种跨客户端语言和协议,并且还有许多先进功能。Apache activemq 完全遵 守JMS 1.1 和J2EE 1.4 规范。Apache activemq 是在 Apache 2.0 License 许可下发布的。 一. ActiveMQ 是什么? ActiveMQ is the most popular and powerful open source Message Bus.ActiveMQ 是一个完全支持 JMS1.1 和J2EE 1.4 规范的 JMS Provider 实现,尽管 JMS 规范出台 已经是很久的事情了,但是 JMS 在当今的 J2EE 应用中间仍然扮演着特殊的地位。 下面是它的特性列表 1. 多种语言和协议编写客户端。语言: Java, C, C++, C#, Ruby, Perl, Python, PHP。 应用协议: OpenWire,Stomp REST,WS Notification,XMPP,AMQP 2. 完全支持 JMS1.1 和J2EE 1.4 规范 (持久化,XA 消息,事务) 3. 对Spring 的支持,ActiveMQ 可以很容得内嵌到使用 Spring 的系统里面去,而且也支持 Spring2.0 的特性 4. 通过了常见 J2EE 服务器(如 Geronimo,JBoss 4, GlassFish,WebLogic)的测试,其 中通过JCA 1.5 resource adaptors的配置,可以让ActiveMQ 可以自动的部署到任何 兼容 J2EE 1.4 商业服务器上 5. 支持多种传送协议:in-VM,TCP,SSL,NIO,UDP,JGroups,JXTA 6. 支持通过 JDBC 和journal 提供高速的消息持久化 7. 从设计上保证了高性能的集群,客户端-服务器,点对点 8. 支持 Ajax 9. 支持与 Axis 的整合 10.可以很容易得调用内嵌 JMS provider,进行测试 二. ActiveMQ 的竞争者 1,其他开源 JMS provider(资料来自 java-source.net) : jbossmq(jboss 4) jboss messaging (jboss 5) joram-4.3.21 2006-09-22 openjms-0.7.7-alpha-3.zip December 26, 2005 mantamq ubermq SomnifugiJMS 2005-7-27 开源的 JMS Provider 大部分都已经停止发展了,剩下的几个都是找到了东家,和某种 J2EE 服务器挂钩,比如 jboss mq 与jboss,joram 与jonas(objectweb 组织),ActiveMQ 与 Geronimo(ASF APACHE 基金组织),而在这 3个之间,从网络底层来看,只有 ActiveMQ 使用 了NIO,单从这个角度来看 ActiveMQ 在性能上会有一定的优势。 2.商业 JMS provider IBM WebSphere MQ BEA WebLogic JMS Oracle AQ NonStop Server for Java Message Service(JMS) Sun Java System Message Queue Sonic jms TIBCO Enterprise For JMS iLinkMQ (国内) 现在的商业 J2EE 应用服务器大部分都会有 JMS Provider 的实现,毕竟应用服务器都已经 花费不薄,也不在乎在里面送一个 JMS Provider 了,当然还是有独立的比如 IBM WebSphere MQ,Sonic JMS,前者肯定是商用 MQ(这个概念不仅仅是 JMS Provier 了,只能说 JMS 只是 它提供的一个应用)中间的巨无霸了。 从这点来看,ActiveMQ 明显的竞争者并不多,因为它是作为独立的开源JMS Provider 出现 的,很容易被用于多种结构设计中,使用 ActiveMQ 作为默认 JMS Provider 的开源项目有 ServiceMix,Geronimo. 三.安装 ActiveMQ 首先去 http://activemq.apache.org/download.html 下载最新版本 4.1.0release, 解压 apache-activemq-4.1-incubator.zip(或者 apache-activemq-4.1- incubator.tar.gz)目录如下: +bin (windows 下面的 bat 和unix/linux 下面的 sh) +conf (activeMQ 配置目录,包含最基本的 activeMQ 配置文件) +data (默认是空的) +docs (index,replease 版本里面没有文档,-.-b 不知道为啥不带) +example (几个例子 +lib (activemMQ 使用到的 lib) -apache-activemq-4.1-incubator.jar (ActiveMQ 的binary) -LICENSE.txt -NOTICE.txt -README.txt -user-guide.html 你可以使用 bin\activemq.bat(activemq) 启动,如果一切顺利,你就会看见类似下面的 信息: 几个小提示 1. 这个仅仅是最基础的 ActiveMQ 的配置,很多地方都没有配置因此不要直接使用这个配置用 于生产系统 2. 有的时候由于端口被占用,导致 ActiveMQ 错误,ActiveMQ 可能需要以下端口 1099(JMX),61616(默认的 TransportConnector) 3. 如果没有物理网卡,或者 MS 的LoopBackAdpater Multicast 会报一个错误 四. 测试你的 ActiveMQ 首先安装 ant,在环境变量中 path 中配置 D:\Java\apache-ant-1.7.0\bin 由于 ActiveMQ 是一个独立的 jms provider,所以我们不需要其他任何第三方服务器就可 以马上做我们的测试了.编译 example 目录下面的程序 ProducerTool/ConsumerTool 是 JMS 参考里面提到的典型应用,Producer 产生消息,Consumer 消费消息,而且这个例子还可以 加入参数帮助你测试刚才启动的本地 ActiveMQ 或者是远程的 ActiveMQ ProducerTool [url] broker 的地址,默认的是 tcp://localhost:61616 [true|flase] 是否使用 topic,默认是 false [subject] subject 的名字,默认是 TOOL.DEFAULT [durabl] 是否持久化消息,默认是 false [messagecount] 发送消息数量,默认是 10 [messagesize] 消息长度,默认是 255 [clientID] durable 为true 的时候,需要配置 clientID [timeToLive] 消息存活时间 [sleepTime] 发送消息中间的休眠时间 [transacte] 是否采用事务 ConsumerTool [url] broker 的地址,默认的是 tcp://localhost:61616 [true|flase] 是否使用 topic,默认是 false [subject] subject 的名字,默认是 TOOL.DEFAULT [durabl] 是否持久化消息,默认是 false [maxiumMessages] 接受最大消息数量,0 表示不限制 [clientID] durable 为true 的时候,需要配置 clientID [transacte] 是否采用事务 [sleepTime] 接受消息中间的休眠时间,默认是 0,onMeesage 方法不休眠 [receiveTimeOut] 接受超时 我们可以这样使用: 先启动 activeMQ,再打开两个命令窗口,都进入 D:\activemq\example,一个运行:ant consumer,一个运行:ant producer,如果成功发送/接收了消息就 OK了。 安装好 ActiveMQ 后,肯定第一个想法就是把这个 JMS Provider 跑起来,然后运行它自带 的例子代码来验证其是否安装成功,通过阅读其官网上的文档,实验如下: 1) 先将 ActiveMQ 跑起来,运行出一个 JMS 的代理,它负责消息的接收和发送,就是执行 bin 目录下的 activemq 批处理命令。 2) 打开两个 cmd 窗口,都定位到 example 目录下,第一个运行 ant consumer,第二个运 行ant producer,就可以看到如下的信息被生产和消费,核心就是 builder.xml。结果如下 图:
还剩4页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 20 金币 [ 分享pdf获得金币 ] 2 人已下载

下载pdf

pdf贡献者

xhzarching

贡献于2011-08-16

下载需要 20 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf