ActiveMQ使用过程中需要注意的细节

目录

●JMS1.1的具体实现

●支持Queue和Topic两种模式

●消息消费的两种模式

●Session的事务与消息确认机制

●消息重传

●释放资源

●小结


●JMS1.1的具体实现

笔者之前学习过Kafka,近日学习ActiveMQ时,最先留意到的一句话是“ActiveMQ遵从JMS1.1规范”,一开始不以为然,觉得ActiveMQ和Kafka都是类似的,都是消息中间件。况且ActiveMQ也支持发布/订阅模式(topic模式),按理是大同小异的。但实际开发中发现,还真不太一样,例如ActiveMQ本身就没支持topic中的消息偏移量这么个东西。

回到刚在说的JMS,它的全称是Java Message Service,百度百科有长篇的解释,但笔者觉得最精髓与核心的理解就一句话:JMS定义了一套接口。是的,它就是一套接口的总称。那既然有接口,自然需要有接口的实现类,不然怎么提供功能呢?而ActiveMQ正是对这套接口的一种具体实现

现在我们往细了说说JMS这套接口。

 

最后说说1.1,这是这套接口的版本。一个版本号,为什么需要注意呢?这是因为笔者在使用过程中参考Java7的API,使用中却发现居然没有对应的接口。例如,笔者想使用生产者延迟发送消息,在Java7给出的API中有如下方法:

也就是说,你需要调用producer.setDeliveryDelay(1000)方法就可以一秒钟后发出消息,然鹅,实际使用发现接口中并没有定义这个方法,百度了一下也没有太有效的回答。突然想到1.1这个版本号。果然,我们看到Java7的这一套JMS接口是2.0版本:

而我们查看一下Java5的JMS接口,确实是没有这个方法的,并且也显示其版本是1.1:

除此之外,还有类似Message在1.1版本中没有具备acknowledge()方法等,大家有兴趣的可以对比Java7Java5的相关API接口文档。以JMS1.1的接口来看,主要包括以下内容

ConnectionFactory:连接工厂,用于产生Conne

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值