MySQL主从原理
MySQL主从主要涉及了两个线程:IO线程和SQL线程
两个日志: 二进制日志(binlog)和中继日志(relaylog)
MySQL主上写入内容,内容会存储至log-bin日志中。MySQL从会通过IO线程,从MySQL主上拿到数据,
并且将数据存储到relay-log日志中,再通过SQL线程将relay-log日志中拿到的数据进行执行,从而实现了
主从同步。
DNS原理
DNS原理分为两种情况:
1.本地之前查找过,有过缓存
2.本地没有记录
一:本地如果有缓存的话,会向本地缓存中找到对应的IP地址,开始三次握手,访问完毕后,
就开始了四次挥手,然后断开连接
二:如果本地没有缓存记录的话,会通过DNS系统,进行逐级的访问,直到找到对应的IP
三次握手 四次挥手的原理
第一次握手:客户端向服务端发送请求
第二次握手:服务端确认接收到请求,并且给客户端一个回应
第三次握手:客户端确认收到这个回应之后,然后给服务端发送一个确认的回应
第一次挥手:客户端向服务端发送断开的请求
第二次挥手:服务端收到请求后,向客户端发送一个回应,表示确认已经收到
第三次挥手:客户端收到服务端发来的确认回复,将服务断开,并发送给服务端
第四次挥手:服务端收到断开消息,然后断开连接
Linux系统启动原理
BIOS自检 —> grub引导程序 —> 加载内核 —> 执行init —> 启动shell —> login登陆系统
防止暴力破解原理
根据暴力破解进行解决,暴力破解就是一个一个的去试,而防暴力破解就是每次攻击失败后,
都将其用户记录下来,设定一定的次数,当次数过后,就将该用户屏蔽。
LVS -DR原理
当客户端请求VIP时,会将请求先发给Director(调度器),调度器发现请求的是一组集群服务,根据调度算法将这一请求转发给RealServer, 在转发的过程中,仅仅是修改了数据报文中的MAC地址,所以要求DR和RS必须在同一个物理网络内,这是为了保证可以通过修改MAC 地址而进行数据报文的转发。当RealServer处理请求,响应数据,发送响应数据给客户端,按理说此时的数据包的源IP为RIP,目标IP为CIP,虽然能找到客户端, 但是客户端是不收该数据包的,因为并没有请求该RIP ,现在的做法就是进行IP欺骗,即就是修改源 IP 为 VIP,但是不可以将VIP设置在出口网卡上,否则会响 应客户端的arp request,造成client/gateway arp table紊乱,以至于整个load balance都不能正常工作。要在lo接口上配置VIP,并将此 VIP 屏蔽,但是出去时候 的数据包被路由转换,转换后的 IP不再是 VIP,所以要重新设置路由
http协议通信原理
先请求行-----请求头部信息----请求主题信息----头信息结束后和主题信息之间要空一行
HTTP协议-超文本传输协议,指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,
它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。当我们在浏览器输入URL后,
浏览器给Web服务器发送了一个Request, Web服务器接到Request后进行处理,生成相应的Response,
然后发送给浏览器, 浏览器解析Response中的HTML,这样我们就看到了浏览器显示的网页内容。
CDN工作原理
用户先去访问CDN服务器,CDN服务器会查看下自身缓存,如果缓存中存在访客想要的数据,就会直接发
给用户,这种直连的返回会提升访问速度;如果CDN中没有此项缓存,CDN会去找原服务器请求数据,然
后转发数据给用户并同时缓存一份到自身缓存中,下次如果再有任何用户请求相同数据,CDN可直接从缓
存中读取
raid5 0 1的原理,区别
raid0:存取速度快,磁盘使用率100% 风险高,数据容易丢失
raid1:一边读取,一边做校准备份,安全 读写速度慢,磁盘使用率一半
raid5:读取速度快,数据安全强 磁盘损坏时,性能最差
访问网站流程
用户访问一个网站网站时,系统会先检查缓存中有没有记录,如果有记录的话,
会直接进行三次握手,访问完毕后,在进行四次挥手,访问完毕。如果缓存中
没有记录,那么会通过DNS进行逐级的寻找,直到找到所需求的东西。
公司的系统应用架构
监控或者日志分析的四个部分
1.数据收集
2.数据储存
3.数据分析
4.数据展示
以下服务器最高承受的并发,理论上的数量
mysql:500
tomcat:1200
nginx:20000
缓存有哪些,存储有哪些,负载均衡有哪些,数据库有哪些,自动化工具有哪些,消息队列有哪些
缓存:memchache、redis、CDN
存储:
负载均衡:nginx,lvs,F5,haproxy,nuster
自动化工具:Puttet,Ansible,SaltStack
消息队列:Kafka,RabbitMQ,RocketMQ
数据库:
- 关系型:MySQL,SQL server,Oracle,Sybase,DB2
- 非关系型:FastDB,Memcached,Redis
什么是消息队列
消息队列是在消息传输过程中,保存消息的容器。也就是说当你想要在消息
队列中拿到想要的值的话可以通过值的索引拿到值。
技术发展趋势
我最擅长的技能
访问网站的并发量怎么来的?由什么决定?
- 平均用户并发数
- 并发峰值
- 二八原则
- 影响因素:带宽,用户数量,硬件配置
PV、UV、最大在线人数、注册人数、活跃用户数、日活、留存率、跳转率分别是什么
PV:访问量
UV:并发数
最大在线人数:
注册人数:
活跃用户数:
日活:
留存率:新增用户中经过一段时间后仍然使用该应用的用户数量占比,按单位时间进行统计
跳转率:指在只访问了入口页面(例如网站首页)就离开的访问量与所产生总访问量的百分比, 跳转率=访问一个页面后离开网站的次数/总访问次数
跳板机作用,有哪些跳板机工具
- 作用:保护内部网络空间不受入侵,解决运维混乱
- 工具:CrazyEye,Teleport,Jumpserver,GateOne,麒麟
虚拟化有哪些,虚拟机和docker区别
- 系统虚拟化:
- VMware
- Intel VT
- Xen
- KVM
- Bochs
- QEMU
- VirtualBox
- 操作虚拟化:
- chroot
- LXC
- Docker
- Linux VServer
- Virtuozzo/OpenVZ
- 虚拟机和Docker区别
- 虚拟机硬件虚拟化,docker操作系统虚拟化
- 虚拟机模拟硬件构建操作系统,docker复用操作系统
- 虚拟机操作系统隔离,docker进程隔离
- 虚拟机安全性强,docker运行速度快
docker有哪几种网络
- none:容器有独立的网络命名空间,但没有进行任何网络设置
- host:容器和宿主机共享网络命名空间
- Bridge:桥接模式
- container:容器和另一容器共享网络命名空间
devops怎么理解的
个人以为DevOps是一种解决方案或者说现象的统称,也更像是一种行业规范与标准.其诞生的初衷是为了解决软件开发运营维护过程中各个部门之间因为职责和领域的不同所导致的业务进度滞后及交付质量参差不齐等严重问题.不得不说的是云计算对于互联网行业的改变是刺激DevOps越来越普及的一个重要因素.它的主要表现形式以目前接触到的运维领域来看是通过各种代码仓库(Gitlab等)和自动化部署平台(Jenkins等)及自动化部署工具(absible等)来形成的.
它的普及加速了产品发布的频率和产品研发的速度,同时也进一步降低了产品发布的风险,也将运维工程师从高度可重复性的工作中解脱出来;但与之而来的是对于产品质量的进一步要求,因为更新频率加快和市场需求的影响,产品的迭代机制必须更为完善,产品的特点也必须足够鲜明,否则就会泯然众人.
代码上线流程(手动上线,自动上线)
- 手动上线:
- 纯手动scp代码上传
- 纯手动登录,Git pull或SVN update
- 纯手动xftp上传代码
- 开发发送压缩包,rz上传,解压部署代码
- 自动上线
- 配置公共开发环境
- 测试环境
- 代码仓库协作开发
- 灰度发布
- 自动化部署上线交付
- 回滚
服务器安装好之后,需要做哪方面的调优
- 建立磁盘阵列
- 系统内核升级
- 磁盘分区
- 软件安装包配置
- 优化ssh连接关闭selinux
- 更改端口
- 关闭DNS反向解析
- 关闭GSSAPI验证
- 禁止root用户远程登录
- 更新yum源及必要软件安装
- 自动同步时间
- 使用chattr给文件上锁
- 系统资源配额限制
- 设定tcp_wrappers防火墙
- 保护历史命令记录文件
- 配置iptables防火墙规则
- 系统内核参数调优
数据库备份如何备份?什么时间备份?
客户访问量较少时
- 冷备
- mysqldump+crontab+shell脚本
- 热备
- Xtrbackup
架构设计的第一个原则是什么?
分层稳定性
漏洞扫描工具有哪些?
- Qualys
- FoundStone
- Rapid7
- Nessus
- AWVS
- OWASP Zed
- Nikto
- BurpSuite