第二章 优化服务器及基础设施的拓扑结构——冗余、负载分流、高性能的实现

第二章 优化服务器及基础设施的拓扑结构——冗余、负载分流、高性能的实现

2.1反向代理和负载均衡的区别

https://www.cnblogs.com/microtiger/p/7623858.html
在这里插入图片描述

负载均衡时基于反向代理来实现的;
反向代理每一种应用服务器只有一个,它会负责把请求完成。(点对点模式)
负载均衡一种应用服务器可能有多个,它只负责把请求分发到特定的应用服务器中。(它不会告诉前端请求是否响应 只负责传输数据)

优化系统整体的内存优化使用率:

  • 将js、CSS、图片等静态内容放在nginx等静态服务器(一个html页面包含了 30个图片 访问该页面 = 1个动态请求+30个静态请求)
  • 使用静态资源分离 能够降低对应用服务器的请求压力
  • 以html 30个图片的静态请求为例 每一个请求都要经历 连接、切断等操作,HTTP
    提供了Keep-Alive功能可以实现一次连接处理多个请求。
  • Keep-Alive的弊端是会占用大量服务中的线程

2.2 引入缓存服务器

Http是无状态的协议(不保存客户端信息),这使得http协议具有易保存的特性。

  • 在WEB应用中客户端和服务器端都能实现http缓存,服务器与服务器之间也能实现http的缓存。
  • Squid是HTTP、HTTPS、FTP等使用的开源缓存服务器。将Squid配置在使用http进行通信的两点之间,即可实现缓存。
  • Squid通常用来缓存静态资源的http请求
  • 对于程序中的动态数据的缓存 通常使用Memcached等来进行缓存

2.3Mysql同步发生故障时的快速恢复

导致数据库崩溃的原因:

  • 数据库服务器的进程异常结束
  • 磁盘空间已满
  • 磁盘故障
  • 服务器电源故障

数据库同步指的是,将数据库中的数据实时复制同步到其他位置的数据库。
在数据库的同步中的结构是 单主与多从。

主数据库(master)指的是接收客户端发出的修改与查询两种类型的语句的服务器,从数据库(slave)指的是不直接接收客户端发出
的修改语句,而是从Master上获取修改数据库的请求,以此来进行数据的更新的数据库。

在Salve数据库中会运行两种线程:
I/O 线程:从Master中获取更新日志,并将其放入中继日志文件;
SQL线程:从中继日志文件中读取SQL并执行查询。

实现主从同步的条件:

  • Master可以拥有多个Salve;
  • 一个Slave只能挂靠一个Master;
  • 所有的Master及Slave中必须指定不同的server-id;
  • Master需要输出二进制日志;
  • 可以通过Mycat这个插件来实现Mysql的分布式。

2.4选择轻量高速的存储服务器

fastdfs 开源轻量级的分布式文件系统 利用fastdfs能够实现 提供对象存储的服务
七牛云OSS 对象存储服务 (云存储)
https://blog.csdn.net/xingjiarong/article/details/50559849

CDN,即内容分发系统, 相当于网络传输的高速路。解决机房节点不好访问速度慢的问题。
在七牛云中配置的加速域名,就相当于配置CDN 对外的同一的资源对外URL。

猜你喜欢

转载自blog.csdn.net/weixin_40990818/article/details/91429201