百味皆苦

算法排序

选择排序 原理 每一趟从待排序的记录中选出最小的元素,顺序放在已排好序的序列最后,直到全部记录排序完毕。也就是:每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录 基于此思想的算法主要有简单选择排序、树型选择排序和堆排序。(这里只介绍常用的简单选择排序) 基本思想 简单选择排序的基本思想:给定数组:int[] arr=...

八股文-场景题

秒杀场景 【问题】: 如何设计一个秒杀功能? 【答案】: 秒杀系统需要解决五个核心问题:瞬时流量承接、防止超卖、预防黑产、避免影响正常服务、兜底方案。整体架构分三层: 前端层面:1)CDN缓存静态资源(商品详情页、图片),减少源站压力;2)按钮防重复点击(前端加loading状态+本地标记),防止用户连点;3)倒计时控制(服务端校验秒杀时间,未到时间直接拒绝);4)答题/验证码分散请求...

八股文-分布式微服务篇

分布式 CAP理论 【问题】: 什么是CAP? 【答案】: CAP 理论是对分布式系统的特性做了一个高度的抽象,变成了三大指标: 一致性(Consistency):一致性强调的是数据正确,每次读取节点中的数据都是最新写入的数据。 可用性(Availability):每个节点使用本地数据来响应客户端的请求。另外当节点不可用时,可以使用快速失败策略,至少不能让服务长时间不能响应。...

八股文-中间件篇

消息中间件 【问题】 什么是消息队列?为什么使用mq?使用mq会带来什么问题?使用场景有哪些? 【答案】 一、什么是消息队列? 消息队列(Message Queue,简称 MQ)是一种跨进程通信的中间件,用于在分布式系统中实现异步通信。它采用“生产者-消费者”模型,生产者将消息发送到队列中,消费者从队列中拉取或由队列推送消息进行处理。消息队列能够解耦系统组件、缓冲流量、实现异步处理,并保...