MQ之ActiveMQ

MQ=消息中间件,消息中间件是什么?我们可以拆分来看

消息:微信、短信、邮件消息等等......

中间件:顾名思义,在中间的组件,那在谁中间呢?当然是消息的发送者和消息的接收者。

定义Apache ActiveMQApache软件基金会所研发的开放源代码消息中间件;由于ActiveMQ是一个纯Java程序,因此只需要操作系统支持Java虚拟机,ActiveMQ便可执行。

背景

在微服务架构以后,链式调用是我们写程序的一般流程,各个微服务模块之间的交互频繁会带来以下问题:

  • 系统间接口的耦合程度比较严重(每新增一个下游系统功能,都要对上游相关接口进行改造)
  • 面对大流量并发时,容易被冲垮(例如秒杀业务:上游只有一个下单操作,但是下游系统的处理逻辑包括读取订单、库存检查、库存冻结、余额检查、余额冻结、订单生成,余额扣减、库存扣减、生成流水、余额解冻、库存解冻等......一系列操作)
  • 等待同步存在性能问题(整体系统的服务性能遵循“木桶理论”,整体应用系统的耗时取决于链路中最慢的那个接口,比如A调用了A/B/C三个接口,均为50ms,但是B又调用了B1,耗时2000ms,就直接拖累了整个服务性能)

所以针对上述背景中的问题,MQ的应用场景也就出来了

消息中间件的使用场景有哪些

  • 解耦(做到系统间解耦,当新的模块接进来时,可以做到代码改动最小)
  • 削锋(设置流量缓冲池,让后端系统根据自身吞吐能力进行消费不被冲垮)
  • 异步(强弱依赖梳理,将非关键链路的操作异步化并提升整体系统的吞吐能力)
  • 日志的处理
  • 纯粹的消息通信

我们了解了MQ的理念后,就需要再学习一下它是什么实现的,也就是它实际落地的产品,MQ的落地实现有很多,其中包括:

Kafka、RabbitMQ、RocketMQ、ActiveMQ

我们这次就先来学习一下ActiveMQ。

ActiveMQ

学习MQ可以按照以下技术维度去学习,不仅仅是activeMQ,其他的mq也一样,只是具体的落地细节有差异。

  • api发送和接收
  • MQ的高可用性
  • MQ的集群和容错配置
  • MQ的持久化
  • 延时发送/定时投递
  • 签收机制
  • Spring整合
  • .....

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值