自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 字节二面:如何设计一个支持10万QPS的会员系统

会员系统是一种基础系统,跟公司所有业务线的下单主流程密切相关。如果会员系统出故障,会导致用户无法下单,影响范围是全公司所有业务线。所以,会员系统必须保证高性能、高可用,提供稳定、高效的基础服务。随着同程和艺龙两家公司的合并,越来越多的系统需要打通同程 APP、艺龙 APP、同程微信小程序、艺龙微信小程序等多平台会员体系。例如微信小程序的交叉营销,用户买了一张火车票,此时想给他发酒店红包,这就需要查询该用户的统一会员关系。

2025-08-07 12:01:06 813

原创 InnoDB为什么不用跳表,Redis为什么不用B+树?

redis读写全在内存中,不涉及磁盘IO,无需考虑索引层高度,同时由于跳表实现起来更加简单,相比B+ tree而言,少了选择树结构的开销,因此redis使用跳表来实现zset,而不是B+ tree。B+ 树是多路平衡搜索树,扇出高,三层高度即可容纳2kw左右的数据,相同情况下,跳表则需要大约24层,假设层高对应磁盘IO,那么B+树的读性能会比跳表要好,因此Innodb选择了B+树做索引。叶子结点满了,且索引结点也满了。叶子结点满了,索引结点没满的情况,拆分叶子结点,索引结点中需要增加新的索引项。

2025-08-07 11:43:29 1045

原创 需要设计一款基于LBS的交友系统,如何设计地理空间邻近算法?

这样每个用户必然会落入到一个网格中,我们在用户表中记录用户所在的网格ID(gridID),然后借助这个字段进行辅助查找,将查找范围限制在用户所在的网格(gridIDx0)及其周围8个网格(gridIDx1 ~ gridIDx8)中,可以极大降低中间数据量,SQL如下。所以这个方案可以被放弃。我们可以将用户经、纬度直接记录到数据库中,纬度记录在latitude字段,经度记录在longitude字段,用户当前的纬度和经度为X,Y,如果我们想要查找和当前用户经、纬度距离D之内的其他用户,可以通过如下SQL实现。

2025-08-06 11:53:35 1176

原创 如何设计一个支持三千万用户同时在线的短视频系统?

HDFS适合存储大文件,大文件减少磁盘碎片,更有利于存储空间的利用,同时HDFS NameNode的访问压力也更小,所以我们需要把若干个视频文件合并成一个HDFS文件进行存储,并将存储相关的细节记录到HBase中。短视频的完播率通常不足30%,所以QuickTok也不需要将完整视频推送到CDN,只需要根据视频发布者的历史播放记录,计算其完播率和播放期望进度,然后将短视频切分成若干chunk,将部分chunk推送到CDN即可。当用户搜索视频时,系统会根据倒排索引来检索符合条件的视频,并返回结果列表。

2025-08-06 11:27:53 1117

原创 2025年Java后端高频八股文专题(含答案)

Java有8种基本数据类型:byte、short、int、long、float、double、char和boolean。这些类型不是对象,而是直接代表值本身。

2025-08-01 14:21:13 828

原创 如何设计RPC框架在10万QPS下实现毫秒级的服务调用?

来思考这样一个场景:你的垂直电商系统的 QPS 已经达到了每秒 2 万次,在做了服务化拆分之后,由于我们把业务逻辑都拆分到了单独部署的服务中,那么假设你在完成一次完整的请求时需要调用 4~5 次服务,计算下来,RPC 服务需要承载大概每秒 10 万次的请求。而你该如何设计 RPC 框架承载如此大的请求量呢?我建议你:选择合适的网络模型,有针对性地调整网络参数优化网络传输性能;选择合适的序列化方式,以提升封包、解包的性能。

2025-08-01 11:05:56 623

原创 百万级别数据的Excel如何快速导入到数据库中?

但是到了 4.0 版本,预估导入时Excel 行数会是 10w+ 级别,而往数据库插入的数据量是大于 3n 的,也就是说 10w 行的 Excel,则至少向数据库插入 30w 行数据。而房屋信息在导入欠费的时候是不会更新的。在优化的过程中,我还发现了一个特别影响性能的东西:info 日志,还是使用 41w行、25列、45.5m 数据,在 开始-数据读取完毕 之间每 1000 行打印一条 info 日志,缓存校验数据-校验完毕 之间每行打印 3+ 条 info 日志,日志框架使用 Slf4j。

2025-07-30 15:51:50 1127

原创 设计一个支持10W QPS的评论中台,你会怎么设计?

在B站,UP主每天都会发布海量的视频、动态、专栏等内容,随之而来的是弹幕和评论区的各种讨论。播放器中直接滚动播放的弹幕,如同调味剂,重在提升视频观看体验;而点进评论区,相对而言评论文本更长,内容的观点、形式都更丰富,更像是饭后甜点。随着业务不断发展,B站的评论系统逐渐组件化、平台化;通过持续演进架构设计,管理不断上升的系统复杂度,从而更好地满足各类用户的需求。评论的基础功能模块是相对稳定的。全套面试笔记及答案即可免费获取。

2025-07-30 15:12:27 959

原创 【鹅厂一面真题】数据库乐观锁和悲观锁以及redis分布式锁的区别和使用场景?

但实现方式、适用场景和优缺点差异显著。是常见的并发控制机制,它们的核心目标是。在并发编程和分布式系统中,1. 面试官的考察目标。

2025-07-26 17:53:21 1246

原创 一个问题,就难住一群3年+的Java后端[特殊字符]

今天面了三个3年+的Java后端,结果都答得磕磕巴巴,只能让他们回家等通知了,建议多刷多练一下场景题再来面试吧!如果是你,会怎么回答这个问题呢?全套面试笔记及答案即可免费获取​。

2025-07-25 11:31:10 1029

原创 短 URL 生成器设计:百亿短 URL 怎样做到无冲突?

对于需要展示短URL的应用程序,由该应用调用短URL生成器生成短URL,并将该短URL展示给用户,用户在浏览器中点击该短URL的时候,请求发送到短URL生成器(短URL生成器以HTTP服务器的方式对外提供服务,短URL域名指向短URL生成器),短URL生成器返回HTTP重定向响应,将用户请求重定向到最初的原始长URL,浏览器访问长URL服务器,完成请求服务。即预先生成一批没有冲突的短URL字符串,当外部请求输入长URL需要生成短URL的时候,直接从预先生成好的短URL字符串池中获取一个即可。

2025-07-24 15:59:24 1038

原创 索引失效的问题是如何排查的,有哪些种情况?

在MySQL中,索引是用来加快检索数据库记录的一种数据结构。索引失效指的是在进行查询操作时,本应该使用索引来提升查询效率的场景下,数据库没有利用索引,而是采用了全表扫描的方式,这会大大增加查询时间和系统负担。

2025-07-24 15:26:12 1071

原创 假设数据库成为了性能瓶颈点,动态数据查询如何提升效率?

缓存,是一种存储数据的组件,它的作用是让对数据的请求更快地返回。我们经常会把缓存放在内存中来存储, 所以有人就把内存和缓存画上了等号,这完全是外行人的见解。作为业内人士,你要知道在某些场景下我们可能还会使用 SSD 作为冷数据的缓存。比如说 360 开源的 Pika 就是使用 SSD 存储数据解决 Redis 的容量瓶颈的。实际上,凡是位于速度相差较大的两种硬件之间,用于协调两者数据传输速度差异的结构,均可称之为缓存。

2025-07-22 11:09:34 1163

原创 2025年最新Java面试题(场景题➕八股文)及答案汇总(精选100w字,赶紧刷起来!)

基本概念区分:能否清晰说明并发与并行的区别实际应用场景:能否举例说明哪些场景适合并发,哪些适合并行技术实现:了解多线程、多进程、协程等技术如何实现并发/并行问题解决:如何处理并发/并行编程中的常见问题(如竞态条件、死锁等)性能考量:如何评估和优化并发/并行程序的性能2. 线程有几种状态,状态之间的流转是怎样的?NEW(新建)线程刚被创建,但尚未调用start()方法此时线程对象已存在,但还没有分配系统资源RUNNABLE(可运行)调用start()方法后的状态。

2025-07-21 19:34:10 1933

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除