极客时间《架构师训练营》第四章课后作业

2020-06-30  本文已影响0人  anOnion

问题描述:一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。

性能与可扩展性

DNS

DNS 是一种分布式网络目录服务,主要用于域名与 IP 地址的相互转换。它能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的 IP 数串。当查询(域名) IP 时,路由或 ISP 提供连接 DNS 服务器的信息,在一些全球布局的互联网服务中,DNS 可以帮助用户连接到就近部署服务器。

CDN

内容分发网络是一个全球性的代理服务器分布式网络,它从靠近用户的位置提供内容。通常,网页的 HTML、CSS、JS、图片和视频等静态内容由 CDN 提供。

将内容存储在 CDN 上可以从两个方面来提供性能:

负载均衡

负载均衡器将传入的请求分发到不同的应用服务器和数据库等计算资源中。负载均衡器的效用在于:

反向代理

反向代理是一种可以集中调用内部资源的服务;它为用户提供了一个统一接口的 web 服务器。来自客户端的请求先被反向代理服务器转发到可响应请求的服务上,然后代理再把该服务的响应结果返回给客户端。反向代理的好处是:

微服务

微服务将一个大型应用拆分成一些列可以独立部署的小型的、模块化的服务。各个模块的服务又可以通过上面提到的负载均衡器或是反向代理进一步扩展为服务集群,提升服务的吞吐率。每个服务被运行在一个独立的容器中,通过明确定义的通讯机制互相调用,共同实现业务目标。

数据库

数据库还可以做进一步的拆分提升读写性能:

缓存

缓存利用了所谓的信息二八原则,将一些未更改的数据存放在更高速读取的硬件设备上,用于减少服务器和数据库的负载。系统经过分层后,每一层都可以有缓存,如:

异步

异步工作有助于减少那些原本顺序无关请求的响应时间:

通讯

通讯就是上面提到的客户端/服务器,或是微服务间互相调用使用的一些交互机制,常用的通讯机制有:

安全

安全涉及到的面很多很多了,常用的手段有:

上一篇 下一篇

猜你喜欢

热点阅读