粉丝68.6万获赞701.4万

被腾讯大佬鉴定过的佳娃程序员必做项目到底是什么样的呢?鉴定网络热门编程项目,这个项目就是专门为了帮大家学 release 而生的,他几乎用到了 release 所有的主流的特性,因此呢,这个项目也非常适合已经学完了 spot 还没有系统的学习,若 release 的后端的同学 其中呢?尤其是这个秒杀功能啊,一人一单的实现需要格外重点,学习也算是为之后消息对练的学习打下一个基础吧。我先说一下想学习这道课程的同学,评论区扣六领取 这道课啊,分为技术篇、实战篇、道义篇和原理篇,一共一百七十多集,包含了 release 功能的各种项目,实战案例、企业最佳实践、 release 底层的圆码解读、原理分析。 除了学习 race 之外啊,通过这个课程,你还能学到将酷表设计、代码抽象附用这面的压力测试等一系列的使用知识。那这套啊,史上最懂你的 race 实战课, 值得学习!建议啊,有能力的同学把这个项目完整的实现一遍,完全可以把这个项目啊写在建立上面前。再过一下瑞士的最佳世界和底层原理,拿完粉啊就问了。

兄弟们这两天茶不思夜不想起不能寐,整个精神仿佛快要崩溃,就一直在改一个 bug, 最后也是终于给到了一个结果。说白了就是 spring ai 底层的不完善和我们国产的一些开放平台大模型它的请求参数不兼容所导致的。这样的问题。 主要内容和现象是什么呢?就是我在前几天的时候突然发现我的这个呃, ai age 呢,在尝试接入这个工具调用功能之后,会出现一个概率性的报错的问题。 呃,至于什么是这个工具调用呢?我们可以举个例子,就是比如说我鸡毛不会,我纯小白, 但是我这个桌面上有这个 java 呀,有这个,呃, cloud 呀,有这个 java 呀, 我要写文档呢,我就用 java, 我 要写代码呢,就用 cloud, 我 要是俩都想干呢,或者是强度都不高的时候呢,我就用 java, 也就是什么呀, 我在明知自己能力不足的情况下,我去调用其他的工具去帮我解决这样的问题。这个就是工具调用,也叫这个防身靠嘛?这是目前一个叫 嗯,温达团队,知不知道温达他们团队,也就是他们主要提供的一个理念,就是防身靠 ai 在 处理不了的时候,通过这种练式化的去调用自己能够利用的工具去处理问题,而不是通过你代码去进行这种练式的 a 帧的编排。 而在这个过程的搭建的过程当中,嗯,会发现什么样?一旦使用这个 deepsea 官方提供的这个开放平台的 api, 再去进行这个工具调用, 它就有概率出什么问题。就是出这个四百 request 的 请求参数异常的问题,刚开始我抓不着这个异常,后来发现 打一个这个 on arrow 的 这个呃流结束的一个捕捉的动作抓日期,发现你少传了一个 reason content, 而这个 reason content 呢,实际上是目前一些 国内主流的这些大模型,他在深度思考的时候会会输出一个思考过程,而这个思考过程 他在 spring 底层,他根本就没有这样的一个请求字段去承载,这导致在这个执行方身靠的这个过程当中, spring 应该序列化的那个请求体,他根本就没有这个 resurgency content 这个字段,这样它调这个 deepsafe 的 时候,它就始终会提示你请求不合法,就一直在报这个错,然后你给它回退到这个 deepsafe v 四以下,你像是 v 三啊, 或者是这个 dbicchat 这个默认模型,它本身是不支持或者是关闭这个深度思考的,它就不会出现这个。你调用工具的时候出现这个四百的这个报错,然后也是找了好久,终于找着这个问题所在了,就想怎么能解决? 换一个 kimi 吧,你发现换 kimi 二点六之后也是不行,也就是说你只要这些附带深度字号会输出这个 reading content 的 这个它就是和 spring ai 底层不兼容,你就想怎么兼容呢?那还得是 钓二道贩子,也就是钓代理商的这些大模型,那就比如说钓规矩流动,而这个规矩流动的话,他好像所有的模型内置都替你处理深入思考的这个呃参数,你可传可不传,这就导致 spring 直接钓 deepsea 的 开放平台,他必出问题,而你钓规矩流动,他就不会出现这个问题。 所以说最后想怎么妥协啊?你总不能不执行工机调用啊?想到的一个最好的办法还是什么呀?就是走轨迹流动这样的代理商, 走他们比较高端的模型,然后充钱也好啊,维护账号也好啊,都要在这些代理平台去呃, 维护,要不然的话你就不用这个公机调用。但是你想做出一个高智商的一个企业 aa 针的架构的话,你不可能不用的。

吹 吹 吹 吹。

好,今天我们来讲一下如何安装 jdk 环境。 首先我们打开浏览器,直接输入 jdk 清华,找到清华官方的镜像站,我们选择六十四版本 windows 下载安装版本的, 我们打开之后点击下一步同意许可下一步,下一步安装 可以看到我们的 jdk 已经安装完成,在这里我们检查一遍环境有没有自动配置, 可以看到 当前显示我们已经成功安装了 jdk 十一,这样我们的 jdk 就 算配置完成。

今天面了一个 java 后端女生,简历上写着能熟练运用 mescal, 结果随便问了 mescal 优化问题就露馅了。 主包问他一条复杂的多表关联查询突然变慢,你如何从零开始排查和优化?他答,看执行计划加密,答得不完整。 如果你也对这问题不了解,建议看看我这份我整理的高频八股文加场景题,评论区甩一二三,直接带走。学习主播所期待的答案应该是这样的,第一,立即查看执行计划,用 explain 或 explain analyze, 关键看三个字段 type, 如果是 o 就是 全表扫 key 实际用了哪个缩影? rose 预估扫描行数 extra 字段也很重要,看到 using file sort 或 using temporary 就 要警惕。 第二,针对性分析原因,一、锁引问题,是否违反最左前缀,锁引列上是否有计算或函数? 二、关联问题,关联顺序是否合理,小表驱动大表了吗?三、数据问题,返回的数据量是否过大?第三,分布式实时优化,一、添加合适的锁引,联合锁引,注意顺序。 二、重写 sql, 比如用 join 代替子查询。三、调整查询条件,避免 select 星用覆盖锁影。第四,验证优化效果,用 explain 对 比优化前后用真实数据验证查询时间,监控优化后的查询,防止引入新问题。 关键细节优化不是一次性动作,要建立慢查询监控,定期分析 top sql, 形成优化闭环。如果还不知道如何系统提升,可以带着具体问题参考我刚才提到的面试题库,针对性的查漏补缺。 msq 优化能力的提升,需要多动手分析执行计划,多积累真实案例。

项目场景面试问到评论盖楼系统设计,估计百分之九十的人都会挂掉。 b 站、抖音、微博下面那种几万条的评论还能楼中楼回复,到底怎么设计的?很多同学可能会说,这还不简单, 不就是树形结构吗?加个 parent id 字段指向他爹完事。太天真了!如果你敢在简历上写精通高并发,然后给出这个方案,面试官心里已经在给你画叉了,为什么?来,我们往下看, 看看你的简单方案是怎么让数据库原地爆炸的!第一坑, n 加一的死亡螺旋,大家看左边这张红牌,这就是你们说的 parent id 方案,也就是临界表? 你想查一个评论下面的所有回复怎么办?第一步,查他儿子。第二步,查他儿子的儿子。第三步,查他孙子的儿子。如果这个楼盖了一百层,你就得向数据库发一百次 c 口查询,这就是大名鼎鼎的 n 加一问题, 当病发上来的时候,你的数据库连接池瞬间就会被这种地规查询打爆。那你可能会说了,老师,我不地规了,我存个 pass 路径不行吗? 看起来好像不用地规了,但是请看这张黄牌,万一,我是说万一,用户把顶层评论一给删了,它下面挂着的几万条子孙评论路径里都有一,你是不是得全部找出来更新一遍?这叫什么?这叫严重写放大 write amplification, 而且你指望用 like 一 百分号这种模糊查询去走缩影,在千万级数据面前,那就是归宿。 那工业级的方案到底怎么做?重点来了,看看这张蓝色的架构图,本视频的代码笔记,我整理进了两百万字的 java 与 ai 大 模型学习笔记里了,里面包含了三十多个技术站与几十个项目场景实战笔记,还有不同工作年限同学的简历模板,以及一份 java 加 ai 的 三十天面试突击学习路线。需要的话直接拿去 b 站、抖音,他们扛住一级流量的秘诀就在这个字段上。第一招,反范式设计,勇于 root id 字段,别光盯着 parent id, 我 们要加一个字段,叫 root id 顶级楼层 id。 不 管你回复了谁,不管你在第几层,你爷爷的爷爷是谁,都直接记在这一列里。比如你在第一百层回复了,你的 root id 依然指向第一层的那个。楼主, 这样查询怎么查? one shot 一 枪搞定,直接 where route id 等于幺零零一次查询。不管你有多少层次评论,数据库直接把这一千条数据全吐给你,变成一个扁平的列表 file list。 然后呢?在内存里,你的 java go 代码里,把它组装成竖形结构。记住了, cpu 计算虽然快,但数据库 i o 是 很贵的,能用 cpu 换 i o 就是 血赚。 搞定了结构,还有两个性能大坑等着你。坑一,怎么按热度排序产品经理说,我要按点赞数排序,把最火的评论顶上去。你千万别在搜索里写 order by likecount, 几千万行数据实时排序, 你是想让数据库自燃吗?那怎么办?我们可以用 reddit set, 我 们把 top 幺零零的热门评论拎出来,放到 reddit 的 that set 里,点赞数就是 score, 用户看评论时,先去 reddit 拿前十条最火的,剩下的再去数据库捞,这叫冷热分离。坑二, 点赞的高频,发一个热点视频,几百万人同时点赞,如果你每次点赞都去 update 数据库, boom, 数据库旁锁会成为最大的瓶颈。怎么解?看这里, right back 亦不回血。用户点赞只改 reddis, reddis 你 的数字 inker 加上去非常快。 然后呢?每隔几秒钟或者积累了一百个赞,再批量刷回数据库?就算 reddit 挂了,丢几秒的点赞数,用户其实是无感的,但你的系统保住了,这叫最终一致性。 总结一下,评论系统看似是简单的 c r u d, 其实是对数据结构优化、空间换时间、 冷热分离架构的终极考核。好了,本视频的代码笔记,我整理进了两百万字的 java 与 ai 大 模型学习笔记里了,里面包含了三十多个技术站与几十个项目场景实战笔记,还有不同工作年限同学的简历模板,以及一份 java 加 ai 的 三十天面试突击学习路线,大家拿回去好好复习一下。

说实话,初学者才会觉得,刚靠 register 就 能解决百万人直播间的点赞场景,今天这条一分钟的视频你好好听,会直接把你的架构思维提升一个档次。很多人脑子里的方案特别简单,用户点一次赞,请求发到后端, register 点赞数加一,听起来没毛病,对吧?但问题如果真那么搞,百万直播间一开,你服务器第一个先被点炸。 因为直播间点赞这种场景最最恐怖的地方是请求频率特别离谱,几十万人平时疯狂的戳屏幕,有的人甚至一次请求,这不是纯纯的给服务器上压力吗? 所以真正成熟的系统,第一步优化根本不是 reddit, 而是前端先销疯。什么意思?比如用户一秒钟点了二十次赞,前端根本没有必要发二次请求,而是先攒一会,再一次性的发送加二十,这样请求量就会直接暴跌。很多人天天研究 reddit 集群落脚本 paperline, 结果最最该优化的地方在前端。 然后第二个问题就来了,很多人又会觉得,那 ruby 的 肯定稳了。别急,真正的大坑现在才刚开始。因为如果所有点赞请求全部打在 ruby 的 一个 key 上,比如 le 五零零一 like count, 那 这个可以很容易直接变成热点,一个 ruby 的 节点被疯狂的抗压,别的节点在旁边看戏,最后单节点 cpu 直接打满, 这时候怎么办?针痛!成熟的系统一般会做热点分散,比如按照用户 id 进行分桶, le 五零零一, le 五零零一 like 三,不同用户打到不同的桶上, 这样请求压力就被分散了,查询的时候再做汇总统计,这才是真正的大流量设计。然后还有一个特别经典的问题,很多人一听点赞存在 reddit, 立马开始紧张了, reddit 挂了怎么办?终于问到点子上了。因为点赞这种场景,本来就不是一个强一致性的场景,你真以为用户少点了三个赞,主播会连夜报警? 很多时候,哪怕丢一点数据,业务也是可以接受的。所以真正成熟的系统,一般会 rex 扛高并发,定时任务亦步刷库。比如说每隔几秒把 rex 里的点赞增量同步到 my circle, 这样即使 rex 挂了,最多也就是丢最近几秒的数据,不会全没。这其实就是用少量的数据丢失,换超高并发的能力。这才是真正的互联网架构思维。 很多初学者最大的问题是什么?总想着绝对不能丢一条数据,结果最后系统性能直接被自己干爆。真正成熟的系统设计,从来不是绝对完美,而是业务到底能不能接受什么程度的不一致。 所以最后总结一句,很多人认为百万直播间点赞核心是 reddit 够不够快。但真正成熟的系统,更关心的是前端怎么消风,热点怎么分散,数据到底怎么低成本持久化。因为真正可怕的从来不是高并发,而是所有请求同时打在同一个地方。最后留个问题,如果是你,你会优先优化前端消风, reddit 热点还是数据库落盘呢?