架构初认识
架构的相关名词
项目:类似于手机的app,每一个app都可以算做一个项目
架构:维护一个项目,需要使用的一组服务器
集群:为解决某个特定问题将多台计算机组合起来形成的单个系统(并发)
负载均衡:将用户的请求,分摊到多个操作单元上执行,保证服务器的稳定性
高可用:备胎,当一台服务器不可用,另一台服务器自动接管,保证业务不down机
# 开发种类:
- 前端开发:html CSS JS
- 后端开发:Java C PHP Python Golang...
动静分离:动态页面和静态页面分开开发
动态页面:后端开发写的,并且调用数据库的页面
静态页面:前端开发写的,不需要调用数据库的页面
动态请求:用户请求后端页面,需要调用数据库
静态请求:用户请求前端页面,不需要调用数据库
架构的结构介绍
架构访问流程 - 用户视角
1.用户通过浏览器输入oldboyedu.com->回车
2.浏览器会发生一次跳转,分析URL->然后进行DNS解析->获取真实的公网IP地址
3.用户通过tcp的三次握手发起连接->真实的公网IP
4.连接会通过公网->路由器->交换机->抵达前端的硬件防火墙
5.防火墙根据自身访问规则,进行匹配->如果恶意的连接则拒绝->如果是正常的连接则放行
6.防火墙会将连接转发给负载均衡器->查看用户请求的内容->根据内容进行任务下发->下发给web服务器
7.web服务接收请求后会根据请求进行判断
如果是请求图片或者附件->查找存储服务器存储的静态资源
如果请求的网站上的内容->缓存服务器->如果缓存服务器没有->数据库
数据库查询完数据之后会返回数据给web服务器->同时也会返回一份给缓存服务器
8.数据库返回内容->web服务器->负载均衡->用户
架构访问流程 - 运维视角
1.用户通过公网连接(隧道)VPN服务器,这样方便管理内部主机,
2.自动化配置管理,节省人力成本,便于后期维护。统一环境,标准化
3.自动化监控服务,监控系统的运行状态,事前预警,事后追溯。
总结:
一个项目涵盖了一套架构,一套架构又涵盖了不同的角色(高可用、负载均衡、web集群)
五层架构模型--> 负载均衡 web服务 存储服务 缓存服务 数据库服务(通过tcp连接)
架构如何演变服务器架构扩展
横向扩展也叫水平扩展:用更多的节点支撑更大量的请求。 如成千上万的蚂蚁完成一项搬运工作
纵向扩展又叫垂直扩展:扩展一个点的能力支撑更大的请求。如蜘蛛侠逼停火车
yum install net-tools vim tree htop iftop gcc gcc-c++ glibc iotop lrzsz wget \
unzip telnet nmap nc psmisc dos2unix bash-completion bash-completion-extra \
sysstat rsync nfs-utils httpd-tools -y