(13)头条(二)(未完待整理)

一面

警报怎么做的, 统一接入监控项怎么做

配置中心项目, 实时配置推送怎么做?为什么所有组件依赖放在配置中心中控制

限流功能,怎么做?  做成分布式的,怎么做?

令牌桶维护到 Redis 里,每个实例起一个线程抢锁,抢到锁的负责定时放令牌

怎么抢锁? 怎么释放?

Redis setnx

抢到锁后设置过期时间,线程本身退出时主动释放锁,假如线程卡住了,锁过期那么其它线程可以继续抢占

加了超时之后有没有可能在没有释放的情况下, 被人抢走锁

有可能,单次处理时间过长,锁泄露怎么解决?

    换 zk,用心跳解决

不用 zk 的心跳, 可以怎么解决这个问题呢?

每次更新过期时间时,Redis 用 MULTI 做 check-and-set 检查更新时间是否被其他线程修改了,假如被修改了,说明锁已经被抢走,放弃这把锁

假如这个限流希望做成可配置的, 需要有一个后台管理系统随意对某个 api 配置全局流量, 怎么做?

在 Redis 里存储每个 API 的令牌桶 key,假如存在这个 key,则需要按上述逻辑进行限流

二面

拉链法中链表过长时变形为红黑树有什么优缺点?

优点:O(LogN) 的读取速度更快;缺点:插入时有 Overhead,O(LogN) 插入,旋转维护平衡

扩容时, 对读写操作有什么特殊处理?

Java 中 CAS 是怎么实现的?

Compare and Swap,一种乐观锁的实现,可以称为"无锁"(lock-free),CAS 由于要保证原子性无法由 JVM 本身实现,需要调用对应 OS 的指令(这块其实我不了解细节)

假如要查 A in () AND B in (), 怎么建索引?

只给选择性高的一列建索引,两个都是范围查询所以另一个是走不到索引的(这里答的不好,其实也可以建联合索引然后用 (A,B) in ((1,2),(3,4)) 的方式去查)

查询 A in (), MySQL 是针对 N 个值分别查一次索引, 还是有更好的操作?

Redis 的 ZSET 怎么实现的?

跳表

Kafka 的消费者如何做消息去重?

MySQL 去重、Redis 去重、假如场景量极大且允许误判,布隆过滤器也可以

介绍一下 Kafka 的 ConsumerGroup

时序型数据库的存储结构是怎么样的?

讲了 prometheus 1.x 和 2.x 的存储结构

LSM 树了解吗? 是一种什么存储结构?

Log-Structured Merge Tree,牺牲读性能换取性能,RocksDB、HBase、Cassandra 都在用,结构有点忘了,只说了先写 memtable 再刷盘成 sstable

全都热门面试题。即使准备过,多扣细节也看出来真理解还是仅看资料。

三面

热门文章就有几百万的评论, 设计后端服务, 实现评论的时序展示与分页

我: 需不需要支持页码直接跳转?

面试官: 支持和不支持两种场景都考虑一下

我: 不需要支持页码翻页就传评论 id 用 offset 翻页

假如用 id 翻页的方式, 数据库表如何设计? 索引如何设计?

(文章id, 评论id) 建联合索引,评论 id 需递增

假如量很大, 你觉得需要分库分表吗? 怎么分?

需要分,分表有个权衡,按文章 id 分表,读逻辑简单,但写有热点问题;按评论 id 分表,读逻辑复杂,但写压力就平均了。写是要首先保证的,而读总是有缓存等方案来折中,因此按平均 id 分表好。

分库分表后怎么查询分页?

每张表查 N 条数据由 client 或 proxy merge

分库分表后怎么保证主键仍然是递增的?

TDDL :有一张专门用于分配主键的表,每次用乐观锁的方式尝试去取一批主键过来分配,假如乐观锁失败就重试

现在需要支持深分页, 页码直接跳转, 怎么实现?

不能做精准深分页,否则压力太大,找产品进行妥协,在50或100页后数据分页是否可以不完全精确,假如可以,那么缓存深页码的起始评论 id

瞬时写入量很大可能会打挂存储, 怎么保护?

断路器,用 ringbuffer

断路器会造成写入失败, 假如我们不允许写入失败呢?

先写进消息队列,削峰填谷异步落库

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容

  • 40 ajax平时是怎么用的,为什么用 有时候只要更新的是页面某一块内容,这样页面的其他内容是不需要重新获取的。 ...
    zhihaoZzz阅读 640评论 0 2
  • 作者:呼延十链接:https://juejin.im/post/5d351303f265da1bd30596f9 ...
    码农小光阅读 312评论 0 6
  • 索引 数据库中的查询操作非常普遍,索引就是提升查找速度的一种手段 索引的类型 从数据结构角度分 1.B+索引:传统...
    一凡呀阅读 2,855评论 0 8
  • 昨天,同学的妈妈手术了。手术后同学、同学的爱人以及同学的弟弟,和患者关系亲密的三个人各有不同的表现,听我一...
    芬太尼1阅读 180评论 1 4
  • 一沙一世界文/向东 一沙一世界 一花一天堂掌中握无限 永恒刹那间 一粒沙,落在地上,就是泥土的一份子;落在水里,就...
    诗人阿东阅读 452评论 0 4