消息队列(二)
2018-01-10 19:44
106 查看
ActiveMQ
ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位。topic 和 queue的区别
JMS编程模型
(1) ConnectionFactory
创建Connection对象的工厂,针对两种不同的jms消息模型,分别有QueueConnectionFactory和TopicConnectionFactory两种。可以通过JNDI来查找ConnectionFactory对象。
(2) Destination
Destination的意思是消息生产者的消息发送目标或者说消息消费者的消息来源。对于消息生产者来说,它的Destination是某个队列(Queue)或某个主题(Topic);对于消息消费者来说,它的Destination也是某个队列或主题(即消息来源)。
所以,Destination实际上就是两种类型的对象:Queue、Topic可以通过JNDI来查找Destination。
(4) Session
Session是操作消息的接口。可以通过session创建生产者、消费者、消息等。Session提供了事务的功能。当需要使用session发送/接收多个消息时,可以将这些发送/接收动作放到一个事务中。同样,也分QueueSession和TopicSession。
(5) 消息的生产者
消息生产者由Session创建,并用于将消息发送到Destination。同样,消息生产者分两种类型:QueueSender和TopicPublisher。可以调用消息生产者的方法(send或publish方法)发送消息。
(6) 消息消费者
消息消费者由Session创建,用于接收被发送到Destination的消息。两种类型:QueueReceiver和TopicSubscriber。可分别通过session的createReceiver(Queue)或createSubscriber(Topic)来创建。当然,也可以session的creatDurableSubscriber方法来创建持久化的订阅者。
(7) MessageListener
消息监听器。如果注册了消息监听器,一旦消息到达,将自动调用监听器的onMessage方法。EJB中的MDB(Message-Driven Bean)就是一种MessageListener。
相关文章推荐
- Azure Messaging-ServiceBus Messaging消息队列技术系列-索引篇
- 消息队列--MSMQ应用(一)
- Android消息队列
- WCF分布式开发步步为赢(13):WCF服务离线操作与消息队列MSMQ
- 消息队列性能对比——ActiveMQ、RabbitMQ与ZeroMQ(译文)
- . Net环境下消息队列(MSMQ)对象的应用
- 分布式消息队列RocketMQ部署与监控
- uC/OS-II消息队列及操作
- 分布式消息队列RocketMQ与Kafka架构上的巨大差异之1 -- 为什么RocketMQ要去除ZK依赖?
- 进程间通讯--消息队列
- 浅谈消息队列
- 消息队列和管道的区别
- 消息队列 进程通信
- IPC消息队列使用详细分析
- ZeroMQ 消息队列 及 jzmq (java binding) 安装及代码测试
- Linux进程间通信——使用消息队列
- Ucos学习之邮箱与消息队列
- RabbitMQ一:消息队列的认识
- 消息队列【转】
- 深入浅出 消息队列 ActiveMQ------增强版