从18万到1600万播放量,这个跨度背后的秘诀是什么?
摘要:你好呀,我是歪歪。 前几天我想要巩固一下共识算法这个知识点。 (先声明,这篇文章不深入讨论共识算法本身) 于是我在 B 站大学上搜索了“共识算法”这个词: 我还特意按照播放量排序了一下,准备先找个播放量高点的视频随随便巴拉几下。 排名第一的
你好呀,我是歪歪。
前几天我想要巩固一下共识算法这个知识点。
(先声明,这篇文章不深入讨论共识算法本身)
于是我在 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。
