从18w到1600w播放量,我的一点思考。

news/2025/10/20 22:09:35/文章来源:https://www.cnblogs.com/thisiswhy/p/19153798

你好呀,我是歪歪。

前几天我想要巩固一下共识算法这个知识点。

(先声明,这篇文章不深入讨论共识算法本身)

于是我在 B 站大学上搜索了“共识算法”这个词:

我还特意按照播放量排序了一下,准备先找个播放量高点的视频随随便巴拉几下。

排名第一的视频,播放量只有 6.3w。

说实话,在搜索之前,我潜意识里觉得这种这个话题,头部视频最次最次也得有个 10w+ 的播放吧?

而实际情况是前四的视频播放量,满打满算加起来,18w。

这个数字让我瞬间把共识算法抛在脑后,冒出了另一个念头:要不看看"微服务"这个关键词的播放量?

你猜一下,这个用“微服务”这个关键词,在 B 站搜索,然后按照播放量排序,播放量第一有多少,前四加起来又有多少?

...

...

不要太保守,往大了猜。

...

...

用“微服务”做关键词,播放量第一 462w,前四加起来 1600w,就这我还抹掉了 5w 的“零头”。

这个鲜明的对比,确实引发了我的一点思考。

从“共识算法”的 18w 到“微服务”的 1600w,近 90 倍的差距。看到这个数据,你大概能猜到我在想什么。

面对这个现象,我在思考的是:

共识问题可以说是微服务得以存在的理论基石。但是从这个数据上来看,我觉得知识体系在某个环节出现了非常严重的断层。

当然了,我得先叠个甲。

我知道我用上面这个统计方式完全不准确,完全不科学,完全不正确。

但是“知识体系出现了断层”这个结论,歪师傅觉得是正确的,而且也觉得这个是正常的现象。

只是让我觉得诧异的是,我潜意识里面觉得差距不应该是十几万到一千六百万,这种近 90 倍的数量级的差异。

这背后其实有一个值得探讨的且是 IT 行业普遍存在的一个现象:“赶紧上手”和“底层原理”之间的权衡。

数据为什么是这样的

首先,我思考了一下:数据为什么是这样的?

我观察了一下,"微服务"排名前四的都是培训机构上传的系统课程。

培训机构嘛,大家也知道,这一类课程的主要目的就一个:赶紧上手。

底层逻辑是为“尽快找到工作”而服务。

本质上是将一个人在最短时间内打造成能满足企业初级编码岗位要求的合格“牛马”。

在这个标准下,一切不能直接、快速为初级编码岗位服务的知识,都会是“冗余”的。

所以,你看他们的课程:

比如讲到 Eureka 的时候,基本上都是在讲怎么使用,代码应该怎么去写,写完之后怎么跑起来。

我快速浏览了相关内容,完全没有提到“共识算法”和 CAP 相关的点。

当然了,也有可能是我跳着看的,看的不仔细,其实讲了但是我没看到,但是这不重要。

总之,事实就是入门课程完全可以不讲共识算法,甚至不提 CAP 理论。

这类入门课程的受众面就是非常广,播放量高也是非常自然的事情。

写到此处,不得不再次叠个甲了:我也并不是在吐槽这种授课方式,我只是在称述我认为的“数据为什么是这样”的事实。

相反,我站在现在的视角去看,这样的课程安排其实是合理的。

试想一下,对于一名刚刚从单体服务转向分布式系统的初学者来说,还在给你铺垫各个组件的功能,然后讲到注册中心的时候,直接就安排上了 CAP 和共识算法这套非常抽象、难以理解的丝滑小连招,应该是非常劝退的。

直接就是一个“从入门到放弃”的大动作。

这也与“尽快找到工作”这个核心出发点相违背。

在市场上,对于大多数初中级岗位,公司更看重的是你能否在现有的框架下完成业务开发。

如果公司使用的是 SpringCloud 全家桶来搞微服务,那你能够正确、熟练地使用,已经能够胜任百分之七八十的工作了。

至于共识算法什么的,最多也就是在面试的时候出现一下就了不得了。

更进一步

对于培训机构和学习者来说,都需要“更进一步”

对于培训机构来说,虽然这些都是入门课程,但是我觉得理想状态应该是能在讲解相关组件的时候,引出其背后的理论,但是一定要点到为止。

比如:

  • 从“为什么要用服务注册中心?”,引出服务发现的问题。
  • 从“Eureka 和 Nacos 的区别?”,引出 CAP 理论。
  • 从“分布式事务怎么实现?”, 引出数据一致性问题。
  • “从集群数据同步”,引出共识问题。

点到为止,只需要帮初学者建立一个宏观的、模糊的认知就行了,相当于埋下一颗种子。

而对于学习者,你不能一边自嘲着自己是“CRUD 工程师”,一边又没有足够的理论基础和自信的技术决策能力。

你得让前面提到的种子长成一颗技能树。

比如,当面对 CAP 权衡的时候,你能通过你的技能树知道它不是一个选择题,而是一个权衡题。

举个简单的例子。

站在 CAP 的角度,你得知道为什么 Eureka 客户端要缓存服务列表?

因为在与注册中心网络分区 P 时,要保证服务的可用性 A,所以牺牲了部分一致性 C。

你也得知道为什么 ZooKeeper 不能像 Eureka 那样允许节点间长时间失联?

因为它要保证一致性 C,在出现分区 P 时,宁愿牺牲可用性 A。

从而要知道,在要求强一致性的金融场景下,底层设计要保证 CP ,而在追求高可用的电商场景下,要保证 AP。

再比如,当学习到 Seata 时,需要追问各种分布式事务模式的实现,什么 2PC、TCC、Saga 这些玩意在根本上是想说什么,是怎么和 ACID、BASE 理论以及最终一致性这些概念关联上的。

我知道这些要求对于初学者来说,确实很高。

但是结合我自己亲自走过的技术路线,我确实是先掌握了基础的使用,然后在长达几年的时间中逐步慢慢去理解上面这些东西的。

而我上面说的这么多,核心想要表达的是:首先你得有一颗种子,然后你得让种子长成一颗树。

有的人运气比较好,得到种子的过程比较轻松,不需要花费大力气,在这个维度确实有差异。

但是在如何让种子长成树的努力上,我觉得大家所需要付出的精力是大差不差的,而且这方面完全是勤能补拙的。

灌溉

让种子成长为树,你得用知识去灌溉。

比如,就具体到前面讨论的这些问题。

写的过程中我就想起我之前看过的一本书,《数据密集型应用系统设计》这本分布式领域的书,必读,是非常好的“肥料”。

然后源码也是上好的肥料,可以从一些相对简单的项目开始读。

比如读一读 Nacos 客户端服务发现的流程,你会发现,理论在具体的代码中是如何体现的。

也可以尝试去阅读一些别人梳理好了的论文导读,比如前面提到的 Raft,相关的论文已经被很多人解读过了,甚至网上已经有了非常清晰的解释原理的可视化动画,帮助你理解其核心思想。

这些都是我过去使用的比较"古老"的学习方式。

现在有了 AI 大模型的加持,学习新技术、寻找优质资料都变得更加方便了。

你可以让 AI 帮你解释复杂概念、推荐学习路径、甚至模拟面试问答,这就大大降低了学习的门槛。

写在最后

最后,我还想表达一个额外的点。

我们回到最开始的数据。

那 1600 万播放量,代表了一条好走、明确且广阔的道路。

那 6.3 万播放量,则代表着一条更孤独、更艰难、更崎岖的通往山峰的路。

每个人都会在大路上走一段时间,但是有人走着走着路就不一样了。

不论你选择哪条路,道路都是清晰的,资源都是充沛的。选择任何一条路,并坚定地走下去,都值得尊敬。

但是,你得自洽。

自洽是指,你不能一边享受着这条“好走、明确且广阔的道路”的快捷与轻松,自嘲着自己是“CRUD 工程师”,又下不了决心、没有足够的毅力往难走的路上走,还在心里嘲讽正在这条更难的路上努力往前的人。

其实工作的越久,我越发现,又是真正阻碍一部分技术人成长的,正是这种“既要、又要、还要”的拧巴心态。

而且,我也曾经在这种心态中沉沦过一段时间。

它让你既无法安心享受当下的成就,又缺乏魄力去追寻更高的目标,最终把精力都耗在了自我消耗和无效的评判上。

想清楚自己想去哪儿,然后坦然地、专注地走你自己的路。

对你没选择的路保持尊重,对你选择的路负起全责。

最重要的是,回头再看的时候,不要用“假设”来美化你没走过的那条路。

好了,以上就是我个人的一些主观思考。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/941670.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

扣一个细节问题

请看下这个uint bits = 0; for (int y = 0; y < 5; y++) {for (int x = 0; x < 4; x++)bits |= b[y][x] << (y * 4 + x);}上面的代码把一个[5][4]的byte数组用bits表示,该数组里的元素非0即1. 在经典的Th…

10.20java作业

10.20java作业1.2.3.4.5. 结果Parent: myValue = 10 Child: myValue = 20 Child: myValue = 20 Child: myValue = 20 Child: myValue = 21 第一行输出:new Parent() 创建父类对象,调用父类的 printValue 方法,输出父…

题解:Luogu P14175 【MX-X23-T5】向死存魏

题意 给定长度为 \(n\) 的序列 \(a\) 和值域 \(V\)。有 \(m\) 次操作:给定 \(l,r,x\),将 \(a[l,r]\) 中 \(=x\) 的数改为 \(0\)。 给定 \(x\),在序列末尾添加 \(x\)。 给定 \(l\),查询最小的 \(r\) 使得 \(a[l,r]\…

软工第三次作业————结对作业

软工第三次作业————结对作业软工第三次作业--结对作业 软工第三次作业结对作业——实现一个自动生成小学四则运算题目的命令行程序(也可以用图像界面,具有相似功能)项目作业 实现一个自动生成小学四则运算题目的…

Spring 常见注解

目录🧐 @Configuration 和 @Import 的核心区别详细解释1. @Configuration (配置类)2. @Import (引入)参考资料 🧐 @Configuration 和 @Import 的核心区别特性 @Configuration @Import主要目的 标记一个类是 Java 配…

题解:AtCoder ARC208C Mod of XOR

题意 给定 \(C,X\),构造一个 \(n(1\leq n<2^{60})\) 使得 \((n\oplus C)\bmod{n}=X\),或报告无解。多测,\(1\leq T\leq 2\times 10^5\),\(1\leq C,X<2^{30}\)。 题解 神人构造题。 显然要有 \(n>X\)。不妨…

题解:Luogu P6898 [ICPC 2014 WF] Metal Processing Plant

题意 给定 \(n\),对于每个 \(1\leq i,j\leq n\),给出 \(d(i,j)\)。对于集合 \(S\),定义 \(D(S)=\max\limits_{i,j\in S}d(i,j)\)。将 \(\{1,2,\cdots,n\}\) 划分为两个集合 \(A,B\),最小化 \(D(A)+D(B)\)。\(1\leq…

32-腾讯IM接入资料和定价

腾讯IM接入资料和定价信息 一、产品概述 腾讯云即时通信IM(Instant Messaging)是腾讯提供的企业级即时通讯服务,支持多种平台接入,包括Android、iOS、Web和小程序等。 二、定价信息 1. 基础服务资费体验版: 提供完…

题解:AtCoder ARC207A Affinity for Artifacts

题意 给定长度为 \(n\) 的序列 \(a\) 和一个数 \(X\),求有多少种 \(a\) 的重排 \(b\) 使得 \(\sum\limits_{i=1}^n\max(b_i-i+1,0)\leq X\)。\(1\leq n\leq 100\),\(1\leq a_i,X\leq 10^9\)。 题解 你说得对,但我怎…

题解:Luogu P9260 [PA 2022] Miny

题意 给定一棵 \(n\) 个点的树,第 \(i\) 条边 \((a_i,b_i)\) 有边权 \(c_i\),第 \(i\) 个点有一个爆炸半径 \(r_i\)。当一个点被引爆时,所有在该点爆炸半径范围内的点也会被引爆,这些新的被引爆的点也可能继续引爆…

题解:Luogu P13544 [OOI 2022] Serious Business

题意 给定一个 \(3\times n\) 的网格,每个格子 \((i,j)\) 内有一个数 \(a_{i,j}\)。一个人初始分数为 \(0\),在位置 \((1,1)\) 处,每次可以向右或向下走一格,目标是到达 \((3,n)\)。当走到格子 \((i,j)\) 时,这个…

题解:Luogu P14254 分割(divide)

题意 给定一棵 \(n\) 个点的树,设根节点 \(1\) 的深度为 \(1\)。给定 \(k\),求有多少从树中选出 \(k\) 个两两不同的节点,组成有序序列 \(b_1,\cdots,b_k\) 的方案,使得:对于每个 \(1\leq i<k\),\(1<d_{b_…

31_创蓝短信接入资料和定价

创蓝短信接入资料和定价 公司简介 创蓝云智为企业提供短信、语音外呼、闪验、号码检测、实名认证等通讯类产品,致力于让企业更高效高质量的获得用户及触达用户。 产品类型通知短信 会员营销短信 国际营销短信 验证码短…

构造单

题目来源 取模下序列构造 是否存在 \(3\) 个长度为 \(n\) 的 \([0,n)\) 的排列 \(a,b,c\),使得 \(a_i+b_i=c_i\mod n\) 遇到取模考虑奇偶性,不要像太复杂,考虑 \(n\) 为奇数的时候直接 \(a=b=~0,1,2,3,4,…\),\(c=…

02.Python百行代码实现抽奖系统

02.Python百行代码实现抽奖系统 ------------------------------------------------ 执行后——————————————————————————————————————————————————————————…

[笔记]高斯消元

高斯消元法是求解线性方程组的经典算法。 内容 求解如下的线性方程组(P3389 【模板】高斯消元法): \[\begin{cases} a_{1,1}x_1+a_{1,2}x_2+\dots+a_{1,n}x_n=b_1\\ a_{2,1}x_1+a_{2,2}x_2+\dots+a_{2,n}x_n=b_2\\ …

[SSH] scp:基于 SSH 的安全文件传输

[SSH] scp:基于 SSH 的安全文件传输$(".postTitle2").removeClass("postTitle2").addClass("singleposttitle");目录01 简介02 操作2.1 本地发送到远程2.2 从远程下载2.3 主机之间复制…

CSP-S 35

10.2010.20 神秘%你赛,rk1 170 ,你管这叫CSP-S? t1 赛时狂写t1 ,想了半天想出来个神秘做法,时间复杂度不会证但应该是对的,写完本地大阳历1.2s 感觉应该没啥大问题,结果空间炸了,最后2h写的代码和暴力分一样多 …

题解:P11662 [JOI 2025 Final] 方格染色 / Grid Coloring

题目传送门 是一道黄题 这里提供一种 \(O(n\log n)\) 的做法\(\mathscr{PART\ \ ONE}\)我们在手%的时候不难发现(注意力有点也不惊人) 虽然第一列和第一行 不保证有序 但是因为这里的前缀$\ max\ $性质保证了第二列和…

CSP-S 32 多校5

10.1510.15 S-32&&多校5 签到后遗憾离场。 t1 签到题,大力分讨即可。 注意符号。 记得排序(没大阳历时忘排序了) code锵锵 #include <bits/stdc++.h> using namespace std; const int N = 1e6 + 10;…