【ActiveMQ】认识ActiveMQ

来源:互联网 发布:老网络歌曲大全 编辑:程序博客网 时间:2024/06/11 14:41

消息中间件:

在分布式系统中完成消息的发送和接收的基础软件。

JMS:

JMS的全称是Java Message Service,即Java消息服务。它主要用于在生产者和消费者之间进行消息传递,

生产者负责产生消息,而消费者负责接收消息。把它应用到实际的业务需求中的话我们可以在特定的时候利用生

产者生成一消息,并进行发送,对应的消费者在接收到对应的消息后去完成对应的业务逻辑。对于消息的传递有

两种类型,一种是点对点的,即一个生产者和一个消费者一一对应;另一种是发布/订阅模式,即一个生产者产生

消息并进行发送后,可以由多个消费者进行接收。


JMS的应用接口:

ConnectionFactory  --连接工厂,用户用来创建到JMS提供者的提供者的连接的被管对象

Connection——连接代表了应用程序和消息服务器之间的通信链路

        Destination——目标,消息的发布和接收的地点,或者是队列,或者是主题

MessageProducer——消息生产者,由会话创建的对象,用于发送消息到目标

MessageConsumer——由会话创建的对象,用于接受发送到目标的消息

   Message——消息,是在消费者和生产者之间传送的对象

Session——会话,表示一个单线程的上下文,用于发送和接受消息。


JMS点对点队列模型的特点:


1、消息生产者生产消息发送到queue中,然后消息消费者从queue中取出并且消费消息

 2、消息被消费以后,queue中不再有存储,所以消息消费者不可能消费到已经被消费的消息

3、queue支持多个存在的消费者,但是对一个消费而言,只会有一个消费者可以消息


JMS的发布者、订阅者模式



1、消息生产者将消息发布到topic中,同时多个消息消费者订阅消费该消息。

2、发布到topic的消息会被所有订阅者消费


 ActiveMQ的安装在此不在讲述,安装后我们可以看到如下页面,在此我们讲述一下控制面板里面关键字:




1、Number of Pending Messages:等待消费的消息,这个是当前未出队列的数量,可以理解为总的接受的数量减去总的出队列的数量

2、Number of Consumers:消费者,这个是消费者端的消费者数量

3、Messages Enqueued:进入队列的消息,可以理解为消费者消费的数量。这个数量只增不减,重启acmq会变成0.在点对点的模式中,由于一个消费只能被成功的消费一次,所以他和进入队列的总数量是相等的。如果不相等,是因为消费者还没有来得及消费,在订阅发布模式下,他因为消费者多,而导致会比如队列数量高,

4、Messages Dequeued:已经出列多少个消息。


        下篇博客介绍 一下代码。