
你在浏览器的地址栏里输入一串字符,轻轻按下回车。屏幕上的进度条闪烁了一下,不到一秒钟,丰富的商品图片、实时更新的价格和文字排版就顺畅地呈现在眼前。
这零点几秒的等待过于平淡,以至于绝大多数人早已对此习以为常。但如果把这电光石火的刹那放大,你会发现屏幕背后发生了一场跨越千里的对话。这中间发生的事,比看上去要多得多。
按下回车之后,你的请求去了哪里
按下回车的瞬间,你的手机或电脑并没有凭空变出页面内容。它所做的第一件事,是把你的操作打包成一份明确的指令,通过光纤、电缆或无线信号打包发送出去。
这份指令的含义很简单:“你好,我想看这个页面,请把上面的图片、文字和排版数据发给我。”
这份指令在网络世界里被称作“请求”。它以接近光速的速度穿过你家里的路由器,穿过电信运营商的网络节点,沿着海底光缆或陆地干线网络一路狂奔。
在网络的另一端,必须存在一个能够接收这个指令的“接收者”。它接住你发出的请求,迅速理解你需要什么,再从自己的存储空间里调出对应的文件与数据,重新打包成数据包,沿着原路发回给你的屏幕。
整个过程在几十到几百毫秒内完成。页面不是凭空跳出来的,而是由另一端那个默默守候的角色,在接收到你的呼唤后,一口气打包传输给你的。
谁在另一头等着回答你
接住这个请求并把内容准确发回给你的那台机器,就是服务器。
第一次听到“服务器”这个词,很多人脑海里可能会浮现出科幻电影里冰冷庞大、闪烁着无数幽蓝指示灯的超级计算机。但回归到本质,服务器其实也是一台电脑。
它的内部同样由处理器、内存、硬盘和网络接口构成,运行着操作系统。如果不看外形和使用场景,它和你桌上的台式机、手边的笔记本并没有天壤之别。
两者的本质区别,在于它们被赋予的使命不同。
你手中的电脑是“个人终端”,它的工作是随时等待你来使用它,你不用时可以随时关机休眠。而服务器从被组装完成的那一刻起,使命就是“响应”。它不能轻易关机,不能随时休息,必须在一周七天、一天二十四小时里始终保持醒着的状态,静静停留在网络的某个角落,随时准备接住来自世界各地、随时可能砸过来的访问请求。
它同一时刻还在应付着很多个“你”
如果服务器只是等在那里,一次只回答你一个人的请求,那它和普通电脑的差别依然不算太大。它真正让人称奇的地方,在于它同一时刻还在应付着很多个“你”。
你坐在屏幕前挑选商品时,可能全国甚至全球还有几万个人和你处于同一个页面。在热烈的大促抢购零点,数以十万计的消费者在同一秒钟按下“提交订单”。
那些成千上万份几乎同时到达的请求,全都会像潮水一般涌向同一批服务器。
你的个人电脑一次只需要服务你一个人,处理一个人的文档或游戏指令。但服务器必须在同一毫秒内,把处理能力切割成成百上千份,同时去读取数据库、校验账户安全、扣减库存,并把结果分别准确无误地送回给每一个不同的屏幕。
正因为要同时应付如此庞大的访问量,且绝对不能在半途“卡顿”或“关机休息”,服务器对硬件品质的要求被推到了极致。它需要多颗能够多线程并行处理的CPU,需要大到惊人的内存来临时存放海量请求,需要工业级的冗余电源防止突发断电,更需要独享的高速网络带宽接入。
因为要同时应付很多人,所以它必须极其强大与稳定。具体这些硬件上的性能差异有多大,则是另一个可以细说的话题了。
这台等着回答你的机器,可以是一整台,也可以只是划出来的一部分
明白了这个“在另一头接请求、回应很多人”的角色之后,我们再来看看这台机器在现实世界里的落地形态。
当一个业务需要服务器来支撑时,并不意味着每个人都必须去物理机房里搬一台沉甸甸的机器出来。根据业务规模的不同,这台等待回答你的机器有着不同的存在形式。
有的服务器,是一台完整且独立的物理实体。服务商把这台机器的全部CPU、内存和硬盘资源,毫无保留地分配给同一个使用者。这种形态通常被称为独立服务器。它拥有最极致的性能与独占性,就像一家做跨境电商业务或者高并发游戏的公司,为了保证全球用户访问的速度与稳定性,往往需要这样一台专属的机器来独自扛下所有流量。
而另一种更常见的形态,是利用软件技术把一台性能极其强悍的大机器,切分成许多个相互独立的虚拟单元。每个单元都有属于自己的资源份额,分配给不同的使用者。这种形态就是我们常说的云服务器或VPS。如果你只是搭建一个个人博客,或者运行一个轻量的接口,通常用不上一整台物理机的算力,划分出来的这一小块资源就足够应付了。
无论是一整台还是一小块,它们本质上都在扮演同一个角色。像恒讯科技这类节点服务商,提供的产品线里通常就同时包含了这两种形式,目的就是为了让不同体量的业务,都能找到适合自己的算力承载方式。
明白了谁在等你,才看得懂后面该怎么选
从你按下回车,到页面完整呈现,这零点几秒的时光里,是一台始终保持清醒的服务器在接收请求、处理数据并完成交付。
知道了“服务器是什么”,看到了网络另一端那个默默守候 Role,你在面对互联网背后的庞大体系时就已经不再陌生。
当这台机器从抽象的概念落到现实的业务里,真正需要面对的下一个问题也就自然浮现了——这个关键的角色,究竟该由什么样的硬件来扮演,又该通过何种方式把它部署到你的业务流水线里。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。