ActiveMQ是什么?
消息中间件。可以在分布式系统的不同服务之间进行消息的发送和接收
关键点:关注于数据的发送和接受,利用高效可靠的异步消息机制传递机制集成分布式系统。
为什么要使用消息中间件?
举几个例子,我想你就会明白了。(其实使用消息中间件主要就是为了解耦合和异步两个作用)
1:微博,都用过吧。那么,当我们新关注一个用户,那么系统会相应的推送消息给我们,并且还做了很多关于我们关注的处理。这就是消息中间件的异步。
2:秒杀系统。100件商品,几十万个人在抢,那这个怎么弄呢?总不能就把服务器给宕机了吧。那么就可以把用户的请求进行缓存,然后再异步处理。
3:系统A给系统B进行通信,而系统B需要对A的消息进行相应处理之后才能给A反馈,这时候,总不能让A就傻傻等着吧。那么,这就是异步的功能。
哪些情况需要用到消息中心?
1. 需要解耦出来的业务
2. 耗时比较久的业务:MQ
比如订单服务,整套订单流水很长,而RPC调用(比如Dubbo)是同步请求的,在发出请求的时候,客户端就要TM一直等订单系统回应结果!
在这个过程中,在等的过程中就要占用服务器的CPU和内存资源,这还不算最糟糕的情况,如果遇到高并发的情况下,有些订单延迟过高,用户会以为出问题了,会反复提交订单,造成状况进一步恶化,和资源的进一步被占用
此时如果采用消息中心进行通讯,那么客户端可以不用去管后台的情况,直接通过消息中心返回的消息,用户拿到消息后,认为OK,但是实际上请求仍然在后台排队等待处理
优点:消息中心避免了同步请求带来的问题,既前台应用根本不用等到后台Service非要将业务处理完毕才返回请求,也同时解决了高并发产生的问题;
###什么是JMS?
Java消息服务(Java Message Service)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。
总结起来说就是:Java对于应用程序之间进行信息交互的API(而且是异步)
什么是ActiveMQ呢?
ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位。
简单点说:不就是为了实现我上述所想要的需求嘛。然后它就是一种实现的方式。就比如,Tomcat是什么?不就是为了实现一种client与服务器之间的交互的一种产品嘛。。所以,不需要死记概念,自己理解就好。
ActiveMQ的安装
环境:Windows
步骤:
(1)登录到ActiveMQ的官网,下载安装包。http://activemq.apache.org/activemq-5154-release.html
(2)下载Zip文件
(3)解压Zip文件,目录如下
(4)启动ActiveMQ服务(注意:要右键以管理员身份进行运行)
注意:有两种方式,第一种就是类似tomcat启动,那么启动图会一直显示。
而第二种的话,就是把这个ActiveMQ注册到服务列表中,这样更方便我们进行操作。(推荐使用这种)
(5)登录,验证是否启动成功
功
(6)进入管理页面
OK,进入之后就可以看我们的管理页面啦。。
M
org.apache.activemq
activemq-all
5.9.0
ependency>