第二阶段网站架构
这一阶段在于理解并且做好笔记
并且画图很重要
学习方法
1、画图,架构图
2、理解流程,架构先后关系,如软件安装的先后关系,服务启动的先后关系
3、学会看日志
程序一定会有日志输出,开发,运维,都是通过日志,去掌握程序运行的状态
后面的学习中会大量的接触到英文,以后安装机器不要使用中文了
4、学习一些英语
画图工具
https://www.processon.com/
https://excalidraw.com/
两本书
淘宝的十年
大型网站架构
淘宝的十年架构
在90年代初第一个网站的出现之后,互联网站发展至今已经有了巨大的变化,全球
有一半的人在使用互联网,人们的生活因为互联网有了很大的改变
从百度,谷歌等等信息搜索
到淘宝,京东网上购物
斗鱼-虎牙文化娱乐,互联网渗透人们的每个角落,并且这种趋势还在加速。
在互联网飞跃发展的过程中,电子商务的便捷背后是不堪重负的网站架构。
大型网站架构特点(淘宝网)
和传统企业应用系统相比,大型网站系统具备如下特点:
高并发,大流量:需要扛得住高并发,大流量的用户访问。Google日均PV数35亿,日均ip访问
数3亿;腾讯QQ同时在线用户数过亿;淘宝双十一当天活动交易额超过百亿,活动开始的第一分钟独立访问
用户数达千万。
高可用:网站系统需要7*24小时不间断提供服务,大型网站的宕机事件通常会成为新闻焦点。
海量数据,高可用数据库:需要存储,管理海量数据,使用大量的服务器。
世界各地用户分布广泛,网络环境复杂:大型网站都是为全球用户提供服务,全球各地网络环境
千差万别,即使国内也有多个运营商网络互通难的问题,面对海外用户还得架设海外数据中心。
服务器安全问题:互联网的开放性,容易受到黑客的攻击,需要保护服务器的安全,保证数据安全。
需求快速变更,发布频繁:和传统应用比较不同,互联网产品为了快速满足市场需求,产品发布率很高,
一天内网站发布几十次已经是正常得了。
渐进式发展:即使是世界级大型网站,也都是由小型架构慢慢演变而来的。
PV:浏览器刷新一次,这个pv就会加一
基本架构的名词
单体应用架构与集群架构
负载均衡和高可用
分布式与微服务
微服务理念
服务器硬件评估
从单体到集群
因为mysql是磁盘型数据库,和机械硬盘,固态硬盘的读写速度挂钩
如果硬盘太差,速度从物理上面就慢,需要使用内存读写的数据库redis
(数据放在内存中,这个叫做缓存)
在淘宝中有一些数据是冷数据,有的数据是热数据,冷的数据就是用户不经常访问的,热数据就是用户经常访问的数据。
这种热数据都是放在redis中
冷的数据一般是放在mysql中的
本身缓存与分布式缓存
第一种缓存是本身缓存,利用程序本身提供的缓存功能(没有引入redis这种数据库)
如php,java,python等本身这些程序,可以将部分数据,直接写入内存中,读取的时候,也会去读取内存中的数据,这个是程序的本身缓存,也叫做本地缓存。
第二种缓存,需要引入独立的产品,独立的软件,引入一个新的数据库叫做redis数据库。
现在的redis解决的是Mysql的压力
但是现在应用服务器自己承受了所有的压力
接下来需要优化客户端浏览器到应用服务器
引入反向代理均衡负载
第一个阶段:单机,lamp
第二个阶段:引入缓存,学习mysql,学习redis
第三个阶段,为了降低入口的流量压力,需要学习负载均衡工具nginx
不同配置的应用服务器分到的访问量也需要调整
引入负载均衡的意义就在于,可以添加多个后端节点,成倍的提升架构的并发性,提高
网站对大流量的支持。
什么又是反向代理呢?
理论上只要不断地增加负载均衡节点,应用服务器的数量,后端必然能够抗住大量的用户流量,
但是这个时候压力就会给到后面的数据库。
需要对数据库进行读写分离
数据库的读写分离
第四次架构升级是,根据数据库的读写业务来分,对数据库进行主从复制,实现读写分离的业务配置,降低数据库压力,从数据库,高配置,抗住大量的读请求。
高可用的负载均衡
此时压力给到nginx
Dns负载均衡
第六次优化dns解析
此时关于流量的压力已经基本没有了
前面解决的都是大流量的问题
当流量不是问题之后,需要微服务重构,应用重构
微服务重构应用重构
容器时代
后面再写
后面需要使用的东西
其中slb的意思是service load balance负载均衡
虚拟机双卡设置
1、创建新的虚拟机,设置为模板机(当作其他机器的克隆机器)
添加两块网卡,一个是NAT,一个是LAN(纯本地局域网,模拟内网)
NAT需要修改,VM的网络编辑器,设置为10.0.0.xx网段
第二个LAN需要自己添加一个LAN网段是172.16.1这个
2、对该模板机,进行系统优化初始化
3、对该模板机,进行快照备份
4、基本该模板机,克隆出其他的机器,并且修改
主机名
ip地址
网卡设置完成之后还需要修改linux的安装启动参数,修改网卡的名字
centos7默认是ens33
需要修改为eth0
在开机选择画面,输入上下左右
按下tab键输入如下指令,修改启动参数
剩下的操作自行百度即可。