ActiveMQ消息队列介绍
-
MQ (Message Queue): 消息队列,在系统之间进行消息传递.
具体的实现技术有: ActiveMQ, Kafka , rabbitMQ, RocketMQ(alibaba)
-
MQ可以在两个系统间进行信息交互,并且支持高并发
ActiveMQ 支持跨操作系统的java语言中通信
rabbitMQ支持跨操作系统跨编程语言间的通信
ActiveMQ简介
由 Apache 出品,开源.
是系统间数据调用的中转站
ActiveMQ的五大应用场景:
1.异步通信
2.流量削峰
3.消息通讯
4.日志处理
5.应用解耦
场景分析:
1.比如当系统使用短信平台\邮件平台的时候.
用户注册,重点在于用户信息数据的保存,
在用户注册会插入短信验证码和邮箱验证,此时会增加业务复杂度,产生代码耦合的问题.
解决该问题可以使用MQ,将发送短信/发送邮箱,通知MQ,由另外的系统去进行完成.
2.当系统使用搜索平台/缓存平台时.
当对数据库中的数据查询操作时需要
再次进行数据查询,为了提高效率,就不再一次一次进入到数据库中进行数据查询,
可以使用MQ建立缓存丶索引,从缓存或索引库进行查询.
如果进行的是增删改查操作,
可以发送消息给MQ,在缓存或索引库中捕捉这个信息,更新缓存或索引库,再更新数据库.
ActiceMQ的使用
ActicveMQ 使用的是标准生产者和消费者模型.
有两种数据结构
1. Queue队列:
1.生产者生产了一个消息,只能由一个消费者消费.
2.当消费者消费某个消息的时候,Queue队列一定要收到这个消息成功消费的回执才会进行下一个消息的发送.
3.无论等待多久,消息都会一直等待消费者处理
2. Topic广播队列:
1.生产者生产了一个消息,能被多个消费者消费.
2.消息无论成功消费与否都无所谓
3.topic要求时间一致,我正好发,你正好收1