消息队列|青训营

36 阅读2分钟

消息队列的概念是:保存消息的一个容器。 消息队列一般的特点有三个:高吞吐,高并发,高可用。 生活中有许多可以应用到消息队列的场景: 1.系统崩溃:用户在app上进行搜索和点击操作的时候,后台都会进行记录存储,但是如果存储系统崩溃了,所有的数据都会化为乌有。 这时候我们可以加入消息队列,缓解存储系统的压力。 2.服务能力有限:当一件商品在平台上发布的时候,会有许多客户同时发起订单。这时系统就需要在一瞬间处理很多的订单申请。系统服务能力只能支持同时处理10个订单。这使得平台的服务体验变差。这时候我们可以在发起订单和处理订单之间加入消息队列,使得平台的服务能力大大提升。 3.链路耗时长尾:当一个客户成功在平台提交了订单后,处理订单的步骤分为以下几步。先是库存记录减一,然后订单记录加一,最后系统给商家发送通知。这是一个线性的过程,每一步完成了之后才能进行下一步。这就导致平台处理订单的效率低下。如果我们在客户发起订单之后加入消息队列,以上三个步骤就可以变成异步处理。处理订单效率就能大大提示。 4.日志存储故障:一般日志存储的顺序是:log-消息队列-logstash-ES-Kibana。加入了消息队列使得日志存储更加稳定。 常用的消息队列软件有: 1.Kafla 2.BMQ 3.RocketMQ 接下来重点介绍Kafla。 Kafla的使用场景有:搜索,直播,订单,支付,点赞,评论,收藏。Kafla的运行原理有:创建集群,新增Topic,编写生产者逻辑,编写消费者逻辑。Kafla的概念有:Producer,Message,Broker,Sucess,Batch.Batch可以批量发送,减少I/O次数,加强发送能力。 其中Broker就是磁盘结构。磁盘结构由磁道,扇区,柱面,盘片组成。我们一般通过二分法找到小于目标的最大偏移量找到文件。 在本次学习中我深入的了解了消息队列的内容和功能,提升了自己的计算机知识水平。