人的认识,确实很容易被职业影响。
我干了很多年互联网,所以看很多东西时,脑子里总会自动冒出那套经典模型:
客户端发请求,服务端接请求,服务端处理,服务端返回
C/S,B/S,HTTP,接口,并发,限流,扩容。
这套东西太熟了,以至于我以前看卫星,也下意识往这上面套。
比如地图定位。
前几年 AI 还没这么普及的时候,我只知道一个很粗浅的知识:手机定位,通常需要至少 4 颗卫星。
然后我就开始犯职业病了。
现在打车、外卖、导航这么普及,全国那么多人天天在用定位。可天上的北斗卫星一共也就几十颗,GPS 也不是无限多。
那问题来了:
这卫星怎么抗高并发?
一个城市早高峰,多少人同时打开地图、叫车、看骑手位置。难道这些请求都打到卫星上?卫星在天上扛 QPS?要不要做限流?要不要做负载均衡?北斗是不是也有网关集群?
现在想想,这问题问得还挺好笑的。
后来我才明白,我完全把模型套错了。
卫星定位根本不是“手机请求卫星,卫星返回位置”。
它更像广播电台,广播电台在那儿放节目,一个人听也是放,一百万人听也是放。听众数量变多,并不会导致电台突然说:“不行了,今天 QPS 太高,我得扩容。”
卫星也是这样,它一直在向地球广播信号。手机不是在请求卫星,而是在“听”卫星。
卫星广播的内容,大概包括几类东西:
第一,它会告诉你当前的精确时间。卫星上有很准的原子钟,能标记信号是什么时间发出来的。
第二,它会告诉你它自己在哪。也就是这颗卫星在某个时间点处于太空中的什么位置。
手机里的 GNSS 芯片收到这些信号后,会用信号发出的时间和自己收到信号的时间,算出信号在空中飞了多久。电磁波传播速度接近光速,而光速是一个常量,所以飞行时间一出来,地面距离卫星有多远也就能算出来。
一颗卫星只能告诉你“你离我大概多远”。多颗卫星一起,就能通过空间几何关系把你的位置算出来。通常说至少需要 4 颗,是因为还要顺手把手机本地时钟的误差也修一下。
这里最有意思的一点是:
卫星根本不知道你是谁,它不知道你在用手机,不知道你在打车,不知道你点了外卖,也不知道你此刻在几环。
它只是在天上循环广播,真正算出你位置的,是你手机里的芯片。
地图 App 拿到终端操作系统提供的经纬度之后,再结合此前录入的地图、道路、导航算法、实时路况,给你画出一个漂亮的界面。
小时候的我还真以为,高德、百度、谷歌地图这些公司,背后是不是和航天系统有什么特殊接口。现在想想,大概是我把互联网产品想得太宇宙级了。
还有一次经历也挺好笑。
我以前面试过一个候选人,他们公司是做海外电视节目直播的,其中一块业务是海外卫星电视转播。简单说,就是把卫星上的电视节目拉下来,再给用户看。
我当时听到“从卫星上拉下来”,脑子里又开始自动建模了:
怎么拉?发请求给卫星吗?卫星返回一个视频流吗?
这么多用户看直播,卫星怎么抗住?
要是世界杯决赛,卫星不得被打爆?
现在想想,这还是同一个误会。
卫星电视也不是用户一个个去请求卫星。卫星是在某个频段上持续广播电视信号,地面设备只要对准方向、调好频段,就能把空气里的电磁波信号接下来。
真正互联网化的是后半段:
地面设备接收信号,采集节目,编码处理,存储,再通过 CDN 分发给用户。
也就是说,卫星只负责把节目“洒”下来。至于后面怎么加工、怎么分发、怎么抗并发,那才是互联网系统要操心的事情。
这么一看,卫星就不是挂在天上的服务器。它更像一个站在太空里的大喇叭。
它不接受你的请求,也不回复你的请求。它只是在那里一直喊:
“现在是几点,我在哪。”
或者:
“节目正在播,你们谁能收到谁就收。”
你听到了,是你的本事。你没听到,它也不知道。
这件事对我最大的提醒是:很多时候,我们不是不懂某个技术细节,而是从一开始就套错了模型。
互联网工程师看什么都想问:
接口在哪?服务端在哪?QPS 多少?怎么扩容?有没有缓存?
但有些系统,底层逻辑根本不是请求响应,而是广播接收。
不是“你问我答”,而是“我一直说,你自己听”。
这就很有意思。
有时候一个看似幼稚的问题,其实背后藏着自己对世界的默认理解。等这个默认理解被打破时,反而会觉得:哦,原来不是它复杂,是我想偏了。
感谢 AI。 它终于能接住我这些奇怪的问题。也感谢这些问题,让我知道,原来我不是在研究卫星,我是在研究自己脑子里的后端思维惯性。
文章评论(0)