面试
文章平均质量分 80
叫我峰兄
星光不问赶路人,干就完了!
展开
-
秒杀系统要如何设计
前言高并发下如何设计秒杀系统?这是一个高频面试题。这个问题看似简单,但是里面的水很深,它考查的是高并发场景下,从前端到后端多方面的知识。秒杀一般出现在商城的促销活动中,指定了一定数量(比如:10个)的商品(比如:手机),以极低的价格(比如:0.1元),让大量用户参与活动,但只有极少数用户能够购买成功。这类活动商家绝大部分是不赚钱的,说白了是找个噱头宣传自己。虽说秒杀只是一个促销活动,但对技术要求不低。下面给大家总结一下设计秒杀系统需要注意的9个细节。1 瞬时高并发一般在秒杀时间点(比如:12点.转载 2021-08-02 17:28:30 · 277 阅读 · 0 评论 -
接口优化实践
前言最近对外接口偶现504超时问题,原因是代码执行时间过长,超过nginx配置的15秒,然后真枪实弹搞了一次接口性能优化。在这里结合优化过程,总结了接口优化的八个要点,希望对大家有帮助呀~数据量比较大,批量操作数据入库耗时操作考虑异步处理恰当使用缓存优化程序逻辑、代码SQL优化压缩传输内容考虑使用文件/MQ等其他方式暂存,异步再落地DB跟产品讨论需求最恰当,最舒服的实现方式嘻嘻,先看一下我们对外转账接口的大概流程吧1.数据量比较大,批量操作数据入库优化前://for循环单笔入转载 2021-05-11 14:36:42 · 149 阅读 · 0 评论 -
API接口响应速度突然变慢的原因及解决方案
引言 本文主要针对SQL优化,缓存方面的优化,第三方接口方面的优化,资源瓶颈,业务方面的优化,网络io方面的优化等,来将项目中接口访问的优化一. 首先要分析接口响应慢的具体原因,列出一些常见原因是不是资源层面的瓶颈(服务器性能问题)是不是缓存没添加,如果加了,是不是热点数据导致负载不均衡是不是有依赖于第三方接口是不是接口涉及业务太多,导致程序跑很久是不是sql层面的问题导致的等待时机加长,进而拖慢接口网络层面的原因,带宽,DNS解析二.相应的解决方案资源紧张,加机器,SLB(负载均衡)搞起原创 2021-05-11 14:19:42 · 9482 阅读 · 0 评论 -
elasticsearch面试题
1 要你做一个分布式日志系统,你打算怎么做?elk2 分库分表后,需要统计多表数据,有什么好的办法吗?额外增加统计表,专门保存计数字段es等聚合查询工具3 es有哪些数据类型?字符串类型、整数类型、浮点类型、date类型、binary类型、array类型、object类型、ip类型4 es如何增删改查5 使用es的优势是什么?谈谈es的使用场景ES是一个分布式的restful风格的搜索和数据分析引擎(1)查询:ES允许执行和合并多种类型的搜索:结构化、非结构化、地理位置、度量指标原创 2021-03-17 15:15:28 · 225 阅读 · 1 评论 -
安全相关面试题
1、什么是对称加密,什么是非对称加密?2、什么是同源策略?3、SYN攻击原理?4 什么是参透测试?参透测试的流程?原创 2021-03-16 21:57:29 · 1137 阅读 · 0 评论 -
kafka零拷贝技术详解
所谓的零拷贝是指将数据直接从磁盘文件复制到网卡设备中,而不需要经由应用程序之手。零拷贝大大提高了应用程序的性能,减少了内核和用户模式之间的上下文切换。对 Linux 操作系统而言,零拷贝技术依赖于底层的 sendfile()方法实现。对应于 Java 语言,FileChannal.transferTo() 方法的底层实现就是 sendfile() 方法。单纯从概念上理解“零拷贝”比较抽象,这里简单地介绍一下它。考虑这样一种常用的情形:你需要将静态内容(类似图片、文件)展示给用户。这个情形就意味着需要先将静原创 2021-03-16 18:27:18 · 1178 阅读 · 0 评论 -
kafka面试题
1. Kafka中有哪几个主要组件?主题:kafka主体是一堆或一组消息生产者:在kafka,生产者发布通信以及向kafka主题发布消息消费者:kafka消费者订阅一个主题,并且从主题中读取和处理消息经纪人:在管理主题中的消息存储时,我们使用kafka brokers.2. 什么是 kafka Rebalance?以及rebalance触发的时机?什么是 RebalanceRebalance 本质上是一种协议,规定了一个 Consumer Group 下的所有 consumer 如何达成一致原创 2021-03-16 17:10:28 · 1145 阅读 · 0 评论 -
rabbitmq面试题
1 RabbitMQ的使用场景?解耦。微服务中不同服务之间的消息通信解耦系统,对于新增的功能可以单独写模块扩展,比如用户确认评价之后,新增了给用户返积分的功能,这个时候不用在业务代码里添加新增积分的功能,只需要把新增积分的接口订阅确认评价的消息队列即可,后面再添加任何功能只需要订阅对应的消息队列即可。异步。将消息写入消息队列,非必要的业务逻辑以异步的方式运行,加快响应速度。削峰,并发量大的时候,所有的请求直接怼到数据库,造成数据库连接异常广播:基于Pub/Sub实现一对多通信延迟信息处原创 2021-03-15 18:37:27 · 466 阅读 · 1 评论 -
拓展面试题之-linux、mongodb、nginx、php面试题
1 为什么 Linux要分为用户空间和内核空间?解析1 在 CPU 的所有指令中,有些指令是非常危险的,如果错用,将导致系统崩溃,比如清内存、设置时钟等。如果允许所有的程序都可以使用这些指令,那么系统崩溃的概率将大大增加。2 CPU 实现了不同的工作模式,不同模式下 CPU 可以执行的指令和访问的寄存器不同,用户空间不需要关注这种不同,只需调用内核空间接口即可。2 谈谈你对5种常用IO模型的理解?3 请说说一次网络请求的完整过程?4 如何提高linux最大文件打开数?5 linux如何查看后台原创 2021-03-12 18:43:38 · 313 阅读 · 0 评论 -
Redis面试题
1、Redis如何实现延时队列使用sortedset,使用时间戳做score, 消息内容作为key,调用zadd来生产消息,消费者使用zrangbyscore获取n秒之前的数据做轮询处理。2、redis缓存击穿是什么?如何解决?缓存击穿是指缓存中没有但数据库中有的数据(一般是缓存时间到期),这时由于并发用户特别多,同时读缓存没读到数据,又同时去数据库去取数据,引起数据库压力瞬间增大,造成过大压力。和缓存雪崩不同的是,缓存击穿指并发查同一条数据,缓存雪崩是不同数据都过期了,很多数据都查不到从而查数据库。原创 2021-03-07 10:51:10 · 136 阅读 · 0 评论 -
MYSQL面试题
1、订单、库存两个表如何保证数据的一致性?在一个电子商务系统中,正常的应该是订单生成成功后,相应的库存进行减少必须要保证两者的一致性,但有时候因为某些原因,比如程序逻辑问题,并发等问题,导致下单成功而库存没有减少的情况。这种情况我们是不允许发生的,MySQL的中的事务刚好可以解决这一问题,首先得选择数据库的存储引擎为InnoDB的,事务规定了只有下订单完成了,并且相应的库存减少了才允许提交事务,否则就事务回滚,确保数据一致性。2、外键的作用保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。原创 2021-03-07 10:25:07 · 1283 阅读 · 0 评论 -
高并发流量控制策略
前言应对大流量的一些思路限流的常用方式限流神器:Guava RateLimiter分布式场景下的限流前言在实际项目中,曾经遭遇过线上5W+QPS的峰值,也在压测状态下经历过10W+QPS的大流量请求,本篇博客的话题主要就是自己对高并发流量控制的一点思考。应对大流量的一些思路首先,我们来说一下什么是大流量?大流量,我们很可能会冒出:TPS(每秒事务量),QPS(每秒请求量),1W+,5W+,10W+,100W+…。其实并没有一个绝对的数字,如果这个量造成了系统的压力,影响了系统的性能,.转载 2021-02-20 15:21:09 · 470 阅读 · 0 评论