认识activeMQ
系统之间直接调用实际工程落地和存在问题:
- 系统之间接口耦合比较严重;
- 面对大流量并发时,容易被冲垮
大流量并发:例如:双十一秒杀:
- 等待同步存在性能问题;
MQ主要解决问题:
- 要做到系统解耦,当新的模块接进来时,可以做到代码改动最小;能够解耦
- 设置流量缓冲池,可以让后端系统按照自身吞吐能力进行消费,不被冲垮;能够消峰
- 强弱依赖梳理能将非关键调用链路的操作异步化并提升整体系统的吞吐能力; 能够异步
MQ定义:
面向消息的中间件 message-oriented middlewareMOM能够很好的解决以上问题:即 能够解耦、能够消峰、能够异步;
- . 是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统集成;通过提供消息传递和消息排队模型在分布式环境下提供应用解耦、弹性伸缩、冗余存储、流量消峰、异步通信、数据同步等功能。
- . 大致过程是这样的:
发送者把消息发送给消息服务器,消息服务器将消息存放在若干队列/主题topic中,在合适的时候,消息服务器会将消息转发给接受者。在这个过程中,发送和接受是异步的,也就是发送无需等待,而且发送者和接受者的生命周期也没有必然联系;尤其是在发布pub/订阅sub模式下,也可以完成一对多的通行,即让一个消息有多个接受者。
注:队列是一个一个发送的,主题是只要订阅过的都会被发送
MQ的特点:
1 . 采用异步处理模式:
消息发送者可以发送一个消息而无须等待响应。消息发送者将消息发送到一条虚拟的通道(队列或主题)上;消息的接受者则订阅或监听该通道。一条信息可能转发给一个或多个消息接受者,这些接受者都无需对消息发送者做出同步回应。整个过程都是异步的。
- . 案例:
一个系统跟另外一个系统之间进行通信的时候,假如系统A希望发送一个消息给系统B,让他去处理。但是系统A不关注系统B到底怎么处理或者有没有处理好,所以系统A把消息发送给MQ,然后就不管这条消息的“死活”了,接着系统B从MQ里消费出来即可。至于怎么处理,是否处理完毕,什么时候处理,都是系统B的事儿,与系统A无关。
这样的一种通信方式,就是所谓的“异步”通信方式对弈系统A来说,只要把消息发送给MQ,然后系统B就会异步的去处理了,系统A不需要“同步”的等待系统B处理完。这样的好处就是:解耦。
2.应用系统之间解耦:
- . 发送者和接受者不必了解对方,只需要确认消息;
- . 发送者和接受者不必同时在线;
ActiveMQ下载
官网下载:[http://activemq.apache.org/](http://activemq.apache.org/) Unix/luinx/Cygwin 版本
ActiveMQ特性:
- . 最主要的功能:实现高可用、高性能、可伸缩、易用和安全的企业级面向消息服务的系统
- . 异步消息的消费和处理:
- . 控制消息的消费和处理:
- . 可以和spring/springboot整合简化编码
- . 配置集群容错的MQ集群;
ActiveMQ安装
ActiveMQ安装步骤(Linux):
1.官网下载:官网下载:http://activemq.apache.org/
2.上传到Linux的/opt目录下(opt下载的是第三方软件)
3. 解压缩:tar –zxvf apache-activemq-5.15.9-bin.tar.gz
4. 根据个人习惯为: activemq单独建立文件夹 : mkdir/myactiveMQ
5. 将解压出来的压缩包拷贝到mq专属的目录下面:cp-r apache-activemq-5.15.9 /myactiveMQ/
6. 进入myactiveMQ目录: cd/myactiveMQ
7. apache-activemq-5.15.9文件夹部分文件介绍:
8. 启动进入文件夹:cd apache-activemq-5.15.9
9. 启动进入文件夹下面的bin文件中:bin
10. 普通启动在本目录下面的: ./activemq start
11. 所需条件:Linux具备java环境: java-version
12. Activemq的默认进程的端口是61616
13. Linux查看服务是否启动方法一:ps -ef|grep activemq 屏蔽不需要的命令:ps -ef|grep activemq|grep –v grep
例:查看tomcat是否启动方法一:ps -ef|grep tomcat|grep -v grep
14. Linux查看端口是否被占用方法二:netstat anp|grep 61616
15. Linux查看端口是否被占用方法三:lsof -i:61616
16. Linux下关闭activemq:在bin文件夹下: ./activemq stop
17. Linux下重启activemq: ./activemq restart
18. Linux下启动activemq带运行日志的启动方式
ActiveMQ安装后的控制台访问:
- ActiveMQ后台启动,前台访问:
例:
Windows上的客户端去访问Linux上的服务器MQ消息中间件服务器:即能ping通可以相互访问步骤;
- 关闭Linux上的防火墙: service iptables stop
- 关闭Windows防火墙
- 查看Linux是否可以ping通windows :ping 192.168.111.1
- 查看Windows是否可以ping通Linux: ping 192.168.111.136
- 成功标志:
- 点击Manage ActiveMQ broker 输入用户名和密码点击登录得到图形化界面
activeMQ备注: 采用61616端口提供JMS服务;采用8161端口提供管理控制台服务
ActiveMQ安装步骤(Windows)
- 官网下载:http://activemq.apache.org/
- 文件解压
- 在bin/win32目录下启动activemq.bat(前提是要安装JDK)
- JDK安装成功标志
- 安装activemq
- 在浏览器下面输入网址:http://localhost:8161/admin
- 输入用户名和密码: admin和 admin
- 端口号配置
- 安装完成标志