- 搞定系统设计:面试敲开大厂的门
- Alex Xu
- 449字
- 2024-01-18 11:53:50
1.1 单服务器配置
万里征途总是从第一步开始的,构建一个复杂系统也是如此。我们从简单的部分着手,先让所有的功能都在一个服务器上运行。图1-1展示了如何配置单台服务器,让一切都在其上运行,包括Web应用、数据库、缓存等。
研究请求流和流量源头有助于我们理解这个配置。我们先来看请求流(如图1-2所示)。

图1-1

图1-2
1.用户通过输入域名(例如api.mysite.com)来访问网站。通常,域名系统(DNS)是由第三方提供的付费服务,它并不是由我们的服务器来托管的。
2.IP地址被返回给网页浏览器或者移动应用。在图1-2所示的例子中,被返回的IP地址是15.125.23.214。
3.一旦获知IP地址,HTTP请求[1]就被直接发送给Web服务器。
4.Web服务器返回HTML页面或者JSON响应来渲染页面。
接下来,我们研究一下流量源头。Web服务器的流量有两个源头:Web应用和移动应用。
• Web应用:它运用服务器端语言(Java、Python等)来处理业务逻辑、数据存储等;它还使用客户端语言(HTML和JavaScript)来展示内容。
• 移动应用:HTTP是移动应用与Web服务器之间的通信协议。而JSON(JavaScript Object Notation)因其十分简单而被广泛用作数据传输时的API响应格式。以下是一个JSON格式的API响应例子。
