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.1J2EE 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. 支持通过JDBCjournal提供高速的消息持久化
  7. 从设计上保证了高性能的集群,客户端-服务器,点对点
  8. 支持Ajax
  9. 支持与Axis的整合
  10. 可以很容易得调用内嵌JMS provider,进行测试
<!--[if !supportLists]--> 二.   <!--[endif]--> 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.0 release 解压 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.JPG
几个小提示
1. 这个仅仅是最基础的 ActiveMQ 的配置 , 很多地方都没有配置因此不要直接使用这个配置用于生产系统
2. 有的时候由于端口被占用 , 导致 ActiveMQ 错误 ,ActiveMQ 可能需要以下端口 1099(JMX),61616( 默认的 TransportConnector)
3. 如果没有物理网卡 , 或者 MS LoopBackAdpater Multicast 会报一个错误
<!--[if !supportLists]--> 四.   <!--[endif]--> 测试你的 ActiveMQ
由于 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 了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值