原理整合

41 阅读4分钟
  1. 对于redis,什么是主从复制、哨兵模式以及集群模式?
  • 主从复制: 主从复制是高可用Redis的基础,哨兵和集群都是在主从复制基础上实现高可用的。主从复制主要实现了数据的多机备份,以及对于读操作的负载均衡和简单的故障恢复。

    缺陷:故障恢复无法自动化:写操作无法负载均衡:存储能力受到单机的限制。

  • 哨兵模式: 在主从复制的基础上,哨兵实现了自动化的故障恢复

    缺陷:写操作无法负载均衡;存储能力受到单机的限制:哨兵无法对从节点进行自动故障转移,在读写分离场景下,从节点故障会导致读服务不可用,需要对从节点做额外的监控、切换操作。

  • 集群: 通过集群,Redis解决了写操作无法负载均衡,以及存储能力受到单机限制的问题,实现了较为完善的高可用方案。

  1. mysql主从复制的原理
  • 主服务器将修改后的操作,写入二进制日志
  • 从服务器开启io线程,主动请求与主服务器同步
  • 主服务器开启dump线程,将二进制日志发送给从服务器
  • 从服务器将二进制日志写入到中继日志
  • 从服务器开启sql线程,将中继日志中的操作更新到数据库中,完成同步
  1. http 状态码
 2xx 成功
 3xx 重定向
     301 永久重定向
     302 临时重定向
 4xx 客户端错误
     401 授权错误
     403 禁止访问
     404 错误页面
 5xx 服务端错误
     502 错误网关
     504 超时
  1. http的七个过程
 1 建立连接
 2 同意连接
 3 处理请求
 4 访问资源
 5 构建响应报文
 6 发送响应报文
 7 记录日志
  1. nginx的模块
 ngx-http-core-module  核心模块
 access    访问模块
 gzip      压缩模块
 log       日志模块
 proxy     代理模块
 rewrite   重写模块
 upstream  反向代理
  1. nginx调优
  • 隐藏版本号
  • 防盗链优化
  • cpu进程与work进程绑定(cpu的亲缘性)
  • 进程打开的最大文件数
  • 进程的优先级
  • 惊群效应
  1. redis特性
  • 单线程
  • 多路复用技术
  • 纯内存结构
  1. mysql的存储引擎
  • myisam
  • innodb
myisaminnodb
支持表级锁支持行级锁
不支持事务支持事务
不支持mvcc (多版本并发控制)支持mvcc
不支持外键支持外键
支持索引支持索引
  1. 事务的特性
  • 原子性:要么全部成功要么全部失败
  • 一致性
  • 隔离性
  • 持久性
  1. 事务隔离级别
  • 提交可读
  • 未提交可读
  • 幻读
  • 串读
  1. redis的击穿、穿透、雪崩
  • 缓存击穿:redis中某一热点过期,此时又有大量用户访问这个热点
  • 缓存穿透:大量请求访问redis和mysql中不存在的数据
  • 缓存雪崩:redis中大量缓存集体过期,请求全部发送给了mysql
  1. redis持久化
  • RDB:类似于快照,执行速度快

手动改触发保存:save和bgsave;自动触发是 save m n

  • AOF:二进制日志,默认是关闭的,需要手动开启
  1. redis的数据类型
  • 字符串
  • 哈希
  • 列表
  • 集合
  • 有序集合
  1. http中mpm的三个工作模式
  • prefork:稳定性要求高
  • worker:性能要求高
  • event:高并发
  1. nginx的零拷贝技术,在内核空间,开辟一块共享空间,用户空间的程序也可以直接在里面进行处理,从而减少拷贝次数。
  2. nginx的调度算法
  • 轮询

  • 加权轮询

  • 最小连接算法

  • 哈希

    • ip哈希
    • url哈希
    • 一致性哈希
  1. tomcat端口号
  • 8080:http协议请求的接口
  • 8005:管理接口,比较危险
  • 8009:AJP协议专用接口,有漏洞
  1. tomcat调优
  • 自身的调优
    • 设置最大线程数
    • 设置连接超时时间
    • 设置最大排队请求个数
  • jvm虚拟机的调优
    • 修改内存的初始大小
    • 修改年轻态和老年态