消息和消息队列、以及作用场景(一)

1 篇文章 0 订阅
1 篇文章 0 订阅

“消息”是在两台计算机间传送的数据单位。消息可以非常简单,例如只包含文本字符串;也可以更复杂,可能包含嵌入对象

“消息队列”是在消息的传输过程中保存消息的容器。 目前的消息队列有很多,例如:Kafka、RabbitMQ、ActiveMQ、RocketMQ、ZeroMQ等。

目录

“消息”是在两台计算机间传送的数据单位。消息可以非常简单,例如只包含文本字符串;也可以更复杂,可能包含嵌入对象。

1、消息队列的应用场景

1.异步处理业务 (分散系统压力)

2.系统解耦

3.业务削峰

4.日志处理(大数据统计等)

5.生产者、消费者模型(也可以是 供应商和对接平台等)


1、消息队列的应用场景

1.异步处理业务 (分散系统压力)

比如一个用户的登录过程: 1、先校验用户信息 2、记录登录日志 3、邮件推送登录提醒 4、返回登录成功

2.系统解耦

解耦就是将不关联的服务模块拆分、比如 购物车模块、和支付模块、订单模块等拆分。 支付模块服务挂了、我们依然可以创建订单(不受到支付模块系统的影响)、发送消息支付(提高系统健壮性与容错性)。

3.业务削峰

削峰是指业务在极短的时间端内集中爆发(高并发)。例如春节在12306上抢购火车票,大量的用户需要同一时间去抢购;又例如淘宝京东的双十一秒杀,短时间内上亿的用户涌入,瞬间流量巨大;因为服务器处理资源的能力是有限的,当出现请求峰值的时候就很容易造成服务器宕机,用户无法访问的情况出现。

削峰从本质上来说,就是更多地延缓用户请求,以及层层过滤用户的访问需求,遵从【最后落地到数据库的请求数要尽量少】的原则。

消息队列就像是大水库一样,拦截上游的洪水,削减峰值进入下游河道的流量减少,从而达到减免洪水灾害的目的。

4.日志处理(大数据统计等)

日志是跟踪软件运行时所发生的事件的一种方法,简单来说它可以记录某时某刻运行了什么代码,当出现问题时可以方便我们进行定位。而我们在业务上记录日志就会导致接口速度和性能下降、这个时候我们就可以将任意业务节点的日志都推送到消息队列里、提高系统性能。

5.生产者、消费者模型(也可以是 供应商和对接平台等)

生产者 是指产生数据的模块,就形象地称为生产者;

消费者 是处理数据的模块,就称为消费者;

缓冲区阻塞队列 可以看文末链接

生产者和消费者之间的中介就叫做缓冲区。

三者之间的结构图:

消息队列就是实现缓冲区的方法之一。

可以学习java中常用的队列(推荐)

java中常用的队列_java 队列_一名小码农的博客-CSDN博客

数据结构(三) 队列_DJyzh的博客-CSDN博客

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值