一、什么是ActiveMQ?
ActiveMQ是Apache提供的一个开源消息系统,它是完全使用java开发,可以很好的支持JMS规范。
二、什么是JMS?
JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间或者分布式系统中发送消息,进行异步通信。如果两个程序之间需要进行通信,我们使用一个JMS服务,进行中间的转发,通过JMS的使用,我们可以解除两个程序之间的耦合。例如,我们在点外卖的时候,当我们下单之后,软件会提示我们“下单成功,正在等待商家接单”的消息。因为点外卖的人流很多,在同一时刻会有许多人进行下订单的请求,如果不使用异步消息机制,第二个人必须要等第一个人执行完了,才能够继续执行,这就给顾客带来了极差的体验,万一一次的请求时间过长,顾客就会失去耐心而不会再继续等待了。
三、ActiveMQ的作用?
ActiveMQ支持同步请求与异步请求,首先解释一下什么是同步请求与异步请求,同步请求就是在同一个时间点,如果有两个用户执行了同一个操作,那么,第二个用户只能等待第一个用户执行完了请求才能够进行执行;异步请求就是在同一个时间点,第二个用户能够不用等待,两个用户的请求同时执行。个人建议:如果使用ActiveMQ去执行同步请求,我觉得还不如不用该消息中间件。
四、ActiveMQ支持的消息模式?
两种消息模式:一种是点对点通讯(PointToPoint),也称作PTP。该通讯模式是一个生产者对应一个消费者,也就是说一则消息只能够被一个消费者所消费掉。假设一个场景:现在有一个生产者,两个消费者,生产者发送了10条信息给Queue(队列),此时两个消费者均摊消息,均摊的规则是轮询,也就是一位消费者接收到的是1,3,5,7,9,另外一位消费者接收到的是2,4,6,8,10。
点对点模型图:
PTP特点:1.一则消息只能被一位消费者消费;
2.生产者发送消息时,消费者可在线,也可不在线;同样,消费者接收消息时,生产者可以不在线。
另一种是发布/订阅(pulisher/subscriber),对于该通讯模式,首先订阅者要先去订阅,然后发布者发布消息给所有的订阅者,换句话说,发布/订阅模式所产生的一则消息可以被多个订阅者所消费。但是这种模式有一个特点就是订阅者要先在线订阅,发布者发送的消息才能够被接收。
发布/订阅模型图:
发布/订阅特点:1.一则消息可以被多位订阅者消费;
2.订阅者要先进行订阅,才能够接收到发布者所发布的消息。
五、项目展示?
1.Activemq客户端安装:
去Activemq官网http://activemq.apache.org/download-archives.html下载压缩包,解压即可使用,前提是要安装了JDK,当然,我想都了解到了Activemq,不能在机器上连java环境都没装。