pengkobe / reading-notes

:stars: to record daily reading notes. I build an issue blog to record daily FE study notes. suggestion and comments are welcomed.
https://github.com/pengkobe/reading-notes/issues
MIT License
13 stars 1 forks source link

web 开发者需要知道的网站基本架构 #463

Open pengkobe opened 5 years ago

pengkobe commented 5 years ago

原文: The basic architecture concepts I wish I knew when I was getting started as a web developer

这篇文章浅析了网站架构中的一些基本概念,以一个用户搜索的案例开始阐述,然后对其中的各个概念进行了讲解。

DNS

一个 key-value 系统,用来找到域名与 IP 的对应关系

Load Balancer (负载均衡)

Web Application Servers (应用服务器)

应用服务器,一般需要 2 台以上(支持负载均衡),搭建与语言相关的环境(JAVA/.NET/NodeJS),并与数据库、缓存、任务队列、微服务、日志系统等建立关联

Database Servers( 数据库服务 )

分为关系型数据库和非关系型数据,两类数据库在横向和纵向拓展各有优势

Caching Service ( 缓存服务 )

缓存那些经常访问需要复杂计算的内容,最常用的两类缓存服务器是 Redis 和 Memcache

Job Queue & Servers (任务队列)

一般在后台默默的运行着,为业务提供支撑,如谷歌的爬虫服务,以及业务系统内常用的图片视频处理,csv 文件生成、邮件发送、用户统计类信息等

Full-text Search Service (全文索引服务)

几个常用的有: Elasticsearch \ Sphinx \ Apache Solr

Services (服务)

一般单独开发,单独管理,故事墙这个应用就会涉及到几个基本的服务

Data (数据)

这里面有几个流程 收集数据 --> 对数据进行初步处理( Kafka ) --> 存入云 --> 导入数据仓库( 用于数据分析: Redshift )

Cloud storage (云存储)

亚马逊云和阿里云等,能够解决数据运维的难题

CDN (内容分发网络)

让用户更快的获取数据,一般用于静态资源

更多

可以查看作者的其它文章 https://engineering.videoblocks.com/@jonathan_fulton?source=post_header_lockup