这是我参与「第五届青训营」伴学笔记创作活动的第7天
课前导入
以日常整点秒杀活动为例,描述此行为过程中可能会发生的以下问题
💥1.系统崩溃 抢票,秒杀活动502
💥2. 服务器处理能力有限
💥3.链路时长太长,耗费时间太多
💥4.历史日志该如何处理
利用消息队列解决以上的问题:
一:对于系统崩溃,可以将所有行为记录发送到消息队列当中,再由存储服务进行拉取。
二:对于突然大量的请求,将其放入消息队列当中,只获取前几个请求进行响应
削峰方法:
三:对于单链路耗时太长的问题,可以采用异步操作,同时相应好几个请求服务,节约时间
四:将日志放入消息队列中,再用专门处理日志的组件如LogStash 放入SQL引擎中,利用Kibana进行简单的分析
主流消息队列 K
Kafka
使用场景
使用步骤
基本概念以及相互间联系
🔶Topic:逻辑队列(通常当作不同的业务场景)对于业务来说,所有数据都会在此进行存储
🔶Cluster:物理集群,每个集群中可以新建多个不同的Topic
🔶Producer:生产者,将业务消息发送到Topic中
🔶Consumer:消费者,负责消费已经发送到Topic中的消息
🔶ConsumerGroup:消费组,彼此之间相互独立,可以从某一个时间点开始消费
🔶Partition:Topic一个分区,Topic都会有多个分片,不同分片并发处理,提升单个Topic的吞吐能力
🔶Offset 表示消息在Partition内部相对位置信息,唯一ID,在Partition内部严格递增
🔶Replica:每个分片有多个Replica,Leader Replica将会从ISR中选出。