【一】综合架构(web网站架构)

一、架构基础知识概述

  1. 项目: 类似于手机的app,每一个app都可以算做一个项目。还比如游乐场里面的项目,由各个娱乐设施组成。

  2. 架构:维护一个项目使用的一套服务器。类似于不同的部门功能来维护一个项目,维护的目的就是为了赚钱。

  3. 集群:为解决某个特定问题将多台计算机组合起来形成的单个系统。集群里的计算机干的事情都是一样的。如果某台机器出现故障了,不会影响整个集群的运转。比如解决并发,一台机器扛不住。

  4. 高可用:当一台服务器不可用,另一台服务器自动接管,保证业务不down机。类似于部门的正副经理,当正经理没来的时候,副经理可以顶上去,维持正常工作。保证业务持续的稳定下去,这样才能持续的赚钱。

二、酒店人员组织架构

为了能理解框架,举一个生活中的栗子,比如一个运行一个酒店,里面都都包含什么职位,每个职位的作用,怎么进行有条不紊的工作的。
在这里插入图片描述
小提示:

  1. 保安:验证身份
  2. 备菜:就是顾客比较多的时候,预定了菜品,厨师提前准备好了,服务员先去看备菜里有没有顾客需求的,如果没有,再去找厨师。
  3. 管理人员:管理保安,服务员,厨师等。
  4. 仓库:存放杂物,或者存放重要的文件或者手机。
  5. 监控:防止员工偷懒,偷吃。事后有证据,可以追溯。

三、 web网站架构

在这里插入图片描述
架构访问流程->用户视角

  1. 用户通过浏览器输入oldboyedu.com->回车
  2. 浏览器会发生一次跳转,分析URL->然后进行DNS解析->获取真实的公网IP地址
  3. 用户通过tcp的三次握手发起连接->真实的公网IP
  4. 连接会通过公网->路由器->交换机->抵达前端的硬件防火墙
  5. 防火墙根据自身访问规则,进行匹配->如果恶意的连接则拒绝->如果是正常的连接则放行
  6. 防火墙会将连接转发给负载均衡器->查看用户请求的内容->根据内容进行任务下发->下发给web服务器
  7. web服务接收请求后会根据请求进行判断
    如果是请求图片或者附件->查找存储服务器存储的静态资源
    如果请求的网站上的内容->缓存服务器->如果缓存服务器没有->数据库
    数据库查询完数据之后会返回数据给web服务器->同时也会返回一份给缓存服务器
  8. 数据库返回内容->web服务器->负载均衡->用户

架构访问流程->运维视角

  1. 用户通过公网连接(隧道)VPN服务器,这样方便管理内部主机,
  2. 自动化配置管理,节省人力成本,便于后期维护。统一环境,标准化
  3. 自动化监控服务,监控系统的运行状态,事前预警,事后追溯。

小提示:

  1. 负载均衡可以理解为中介、代理。
  2. 文字类的都在服务器里存着,但是数据库里不会存储图片,图片因该放在存储设备上面。
  3. 先查缓存后查数据库
  4. 只有防火墙才有公网ip,如果没有防火墙,那么就是负载均衡才有公网ip
  5. 那么如何才能连上内网那? 有一个跳板机, 类似于vpn,就好像现在访问谷歌一样,必须借助vpn,vpn的防火墙可以和谷歌的服务器能进行通信,这样才能实现,在通过vpn把数据返回给用户。 跳板机 先通过公网网卡登录上跳板机这个服务器,然后通过这个服务器的内网网卡,来进行内网的通信。就比如,通过公网来连接讲师机,然后可以通过讲师机来连接学生机。
  6. 监控: 事前预警,时候追溯,监控可以有自己的公网地址,也可以有自己的私网地址。 监控是图形界面的监控。
  7. 备份没有公网ip,上图中由公网ip,那个是练习用的,比较方便。
  8. 硬件负载均衡,软件负载均衡。在主机上面跑一个负载均衡的软件,硬件买不起,软件的的负载均衡学会了,硬件的也就会了。
  9. 负载均衡的软件:lvs支持四层   haproxy国内用的不多,支持四七层    Nginx 国内用的过,功能强大支持四七层
  10. 负载用nginx,web用nginx
  11. LNMP:在这个服务器上运行php的的项目,或者运行python的项目
    LNMT:T代表TOMCAT的工具,运行的是java
  12. Redis不能模拟缓存的内容,但是可以模拟用缓存解决会话登录的问题。
    会话登录:如果登录一个网站,下次打开这个网站还是登录的。在很多公司并不是这样的,如果访问一个网站,通过负载均衡调度到集群中的一个服务器,一刷新,调度有到了第二台机器了,这个时候这台机器没有记录你的信息,又需要重新登录,可以用redis解决这个问题。开发写程序预先约定好的,只需要连接好这个服务就好了。
  13. Redis也是一个数据库,他与MySQL的区别在于,resid是一个内存数据库,相对而言内存要快,mysql的数据都在磁盘,所以内存比较快一些,通常用redis进行加速。每家公司用这个软件的手法各不一样,取决于业务的实际情况。
  14. NFS:基本的储存方式。传统的方式,只能做一台,不能做集群,传输的文件是透明的,更容易理解。有更高级的软件。
  15. 跳板机有做跳板有用来管理上面的主机。ssh有账户密码不方便,不要点记住密码,通常公司都不用账号密码,记不住,机器多的话,三个月改一次密码。 用这个软件效率不高。基于这个ssh协议基础之上,用一个工具叫ansible,这个是一个自动化管理的工具,执行一个命令,上面的所有的服务器环境都配置好了。添加一个服务器,一键就配置好了。
  16. Rsync远程同步,怎么把远程的配置文件保存到这个台服务器上
  17. 加一个外网,因为用跳板机很不方便,方便学习的时候直接连接,所以真正做的时候在关掉。
  18. mysql会独立的放到一个服务器上去运行,可以针对这一种角色做集群
  19. 负载均衡刚开始是一台,后面增加一台,保证高可用性。
  20. 实现高可用:keepalived 用到的场景并不多,因为有一台服务器必须是休息状态,一种浪费的状态,keepalived必须跑在自己的硬件服务器上面。在现在的公有云上面不能运行这个软件的。 有些东西可以不用,但是不能不用。
  21. 服务没有重启意味着没有生效
  22. 当下有许多的运维自动化工具( 配置管理 ),例如:Ansible(主流)(1)被红帽收了(2)基于ssh协议,不需要安装客户端,可以随意移植。SaltStack(主流,但是需要装客户端的,每台系统的版本不一样,是有问题的) 、Puppet(用的少)、Fabric 等。

四、 总结

  1. 一个项目涵盖了一套架构,一套架构又涵盖了不同的角色(高可用、负载均衡、web集群)
  2. 五层架构模型–> 负载均衡 web服务 存储服务 缓存服务 数据库服务(通过tcp连接)
  3. 架构如何演变->服务器架构扩展
    横向扩展也叫水平扩展,用更多的节点支撑更大量的请求。 如成千上万的蚂蚁完成一项搬运工作
    纵向扩展又叫垂直扩展,扩展一个点的能力支撑更大的请求。如蜘蛛侠逼停火车
  4. 一个(架构)网站的瓶颈: 不在于主机数量的多与少,在于带宽 ,如果带宽都达不到的话。那么网站没有并发可言 。还有一个瓶颈:走的层数越多越慢,也就是经过的环节越多,返回效率越低。
  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值