汇总(3)

Mysql主从复制

M
在这里插入图片描述

主从复制原理

在这里插入图片描述

两个日志(binlog、relay log)、三个线程(I/O、SQL、log dump)配合使用

1)从库生成两个线程,一个I/O线程,一个SQL线程;

2)i/o线程去请求主库的binlog,并将得到的binlog日志写到relay log(中继日志)文件中;

3)主库会唤醒 log dump 线程,用来给从库i/o线程传binlog;

4)SQL线程,会读取relay log文件中的日志,并解析成具体操作,来实现主从的操作一致,而最终数据致;

主从复制同步方式

全同步:全同步复制(Fully synchronous replication)
指当主库执行完一个事务,所有的从库都执行了该事务才返回给客户端。因为需要等待所有从库执行完该事务才能返回,所以全同步复制的性能必然会收到严重的影响。
追求的是至少有一个slave已经同步完成,即最终一致性。

半同步:半同步复制(Semisynchronous replication)
介于异步复制和全同步复制之间,主库在执行完客户端提交的事务后不是立刻返回给客户端,而是等待至少一个从库接收到并写到relay log中才返回给客户端。
相对于异步复制,半同步复制提高了数据的安全性,同时它也造成了一定程度的延迟,这个延迟最少是一个TCP/IP往返的时间。所以,半同步复制最好在低延时的网络中使用。
追求的是至少有一个slave已经同步完成,即最终一致性、好处是备份、容灾

异步:异步复制(Asynchronous replication)
MySQL默认的复制即是异步的,主库在执行完客户端提交的事务后会立即将结果返给给客户端,并不关心从库是否已经接收并处理,
这样就会有一个问题,主如果crash掉了,此时主上已经提交的事务可能并没有传到从上,如果此时,强行将从提升为主,可能导致新主上的数据不完整。
默认同步形式,为的是更快速

1.最终一致性和强一致性

最终一致性:即不管过程如何,但是最终的数据是一致的

强一致性:不仅要保证最终一致,而且要保证过程一致,每一步过程都完美的保存下来,如果服务器因为压力导致卡顿或者宕机,强一致性可以让你能接上去。

2.主从复制会特性是在压力大的情况下,有数据不一致的情况,所以在这里可以使用rsync远程同步

rsync是把文件对比,看差异部分的数据,然后备份差异部分的数据,对这部分数据先压缩再传输。在带宽不是很大的情况下,先压缩再传输会更快。

mysql日志记录方式

(1)STATEMENT:基于语句的复制。在服务器上执行sql语句,在从服务器上执行同样的语句,mysql默认采用基于语句的复制,执行效率高。

(2)ROW:基于行的复制。把改变的内容复制过去,而不是把命令在从服务器上执行一遍。

(3)MIXED:混合类型的复制。默认采用基于语句的复制,一旦发现基于语句无法精确复制时,就会采用基于行的复制

OSl七层模型和TCP/IP五层模型

img

img

OSI七层模型协议

OSI的七层协议主要包括:

物理层(physical layer)

数据链路层(data link layer)

网络层(network layer)

运输层(transport layer)

会话层(session layer)

表示层(presentation layer)

应用层(application layer)

每一层的协议

物理层:RJ45、CLOCK、IEEE802.3(中继器、集线器),ISO2110,光导纤维,双绞线

数据链路层:wi-fi, ATM, DTM,令牌环,以太网,PPPoE ,PPP、FR、HDLC、VLAN、MAC(网桥、

交换机)

网络层:IP、ICMP、ARP、RARP、OSPF、IPX、RIP、IGRP(交换机)

传输层:TCP(T/TCP · Fast Open) UDP DCCP SCTP RSVP PPTP TLS/SSL

会话层:NFS、SQL、NETBIOS、RPC

表示层:JPEG、MPEG、ASII

应用层:DHCP(v6) DNS FTP Gopher HTTP(SPDY、HTTP/2) IMAP4 IRC NNTP XMPP POP3

SIP SMTP SNMP SSH TELNET RPC RTCP RTP RTSP SDP SOAP GTP STUN NTP SSDP

TCP和UDP的区别

TCP是面向有连接型,UDP是面向无连接型;

TCP是一对一传输,UDP支持一对一、一对多、多对一和多对多的交互通信;

TCP是面向字节流的,即把应用层传来的报文看成字节流,将字节流拆分成大小不等的数据块,并添加TCP首 部;UDP是面向报文的,对应用层传下来的报文不拆分也不合并,仅添加UDP首部;

TCP支持传输可靠性的多种措施,包括保证包的传输顺序、重发机制、流量控制和拥塞控制;UDP仅提供最基本的数据传输能力

TCP对应的应用层协议有哪些?UDP对应的应用层协议有哪些?

TCP对应的典型的应用层协议:

FTP:文件传输协议;

SSH:远程登录协议;

HTTP:web服务器传输超文本到本地浏览器的超文本传输协议。

UDP对应的典型的应用层协议:

DNS:域名解析协议;

TFTP:简单文件传输协议;

SNMP:简单网络管理协议

ping命令是基于网络层的命令,是基于ICMP协议工作的。

运维核心 :管理、控制、优化L1-L4层

TCP/IP 三次挥手、四次断开

img

第一次握手,客户端:Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。

第二次握手,服务端:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack (number )=J+1,随机产生一个值seq=K,并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态。

第三次握手,客户端:Client收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给Server,Server检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client与Server之间可以开始传输数据了。

三次握手

因为TCP是面向连接传输,客户端向服务器发送SYN同步请求,请求与服务器建立连接,服务器收到此SYN同步请求后,会针对客户端的SYN同步请求进行ACK响应的同时也会发送一个SYN同步请求,当客户端收到服务器发过来的SYN同步请求时,会给予一个ACK响应。

四次握手

客户端向服务器发送FIN断开请求,服务器接收到此请求后,回复一个ACK。服务器向客户机发送FIN断开请求,客户机收到此请求后,回复一个ACK。

为什么握手三次,而不是两次或者四次

为什么不两次:因为TCP是可靠的传输层协议,它在传输数据前,会建立双向数据通信通道,当保证双向数据传输的通道没有问题时,才会发送数据,如果是两次的话,客户端向服务端发送请求连接,服务的回复客户端ACK,假设客户端向服务端发送SYN请求,但是由于网络原因,很卡,所以单方面断开了请求,但是因为网络延迟问题,服务器端延迟了几秒才收到,认为是新的请求,就给ACK回应,但是服务端不知道客户端断开了SYN请求,就会一直将此端口打开,不会给别人用,会一直占用直到时间超时,超时后才会被动关闭。这就会造成资源浪费。

为什么不四次:已经可以正常连接再做四次,就没有必要,造成资源浪费。同时也会增加带宽压力。

为什么挥手四次

因为可能有半关闭状态, 客户机向服务器发送了FIN请求,服务器也给予了ACK响应。但是,服务器和客户机之间还有数据要传输,因此服务器没有向客户机立即发送FIN请求, 数据传输方向是双向的,一个方向的数据通道关闭需要一次请求和一次确认,因此需要断两次,而我们有两个数据方向,因此需要断四次。

http1.0和1.1区别http1.0与1.1有什么区别

①缓存处理 ②带宽优化及网络连接的使用 ③错误通知的管理 ④ Host头处理 ⑤长连接

访问百度的流程

在这里插入图片描述

1、域名解析成IP:先查找本地缓存,/etc/hosts ,如果没有再查找DNS客户端中的配置文件/etc/resolve.conf中找nameserver对应的地址,这个地址就是DNS服务端的地址,DNS服务端中有很多域名解析记录,如果server端没有,则进行迭代查询,先找根域,再找顶级域,再找二级域,知道返回主机对应的ip逻辑地址。

2、按照协议进行通信,确定端口号(二层转发原理是靠mac地址,三层转发原理是靠ip和端口号)通过域名解析已经知道ip地址了,想确定端口号则通过协议确定,http协议是80,https是443,接下来就是三次握手了

3、与目的主机进行TCP连接(三次握手)
http是应用层协议,tcp是传输层,所以发送http请求之前,开始我们常说的三次握手。Http请求是使用TCP进行传输的,可以保证可靠传输,并且有序,需要建立连接,才能进行数据传输。

4、http传输,发送和接收数据

5、与目的主机断开TCP连接(四次挥手)

访问百度(细节版)

在这里插入图片描述

socket套接字概念

socket用于描述IP地址和端口

socket是一个抽象层,其意义是将公司外网和内网的端口,进行桥接。

nginx中一个线程接待一个socket

Nginx部分如何监听端口

nginx有一个master进程管理子进程,支持服务开启,master不会参与接待,而是让woker接待,其中的一个worker就会在80端口等,

等捕捉到本地ip加上80端口后,woker接收到请求后,交给任务分配器,

任务分配器先查看自己的配置文件,例如访问的是80端口里面的根,则配置文件中的location /根就被匹配到了,

然后找到nginx内部的页面内容,然后再将页面内容翻译成浏览器的形式,返回去。

nginx主要处理静态页面

如何查看Nginx当前服务器的连接数

ss -antp|wc -l 查看连接数,一个链接数是一个socket

Nginx 特点

nginx是一款高性能轻量级WEB服务器

并发请求理论值并发量3~5w,实际上生长环境中就两万左右

受本地资源性能影响、

nginx服务器中是不是跑了其他东起、

网络带宽影响、

队列影响、

最大进程工作数影响、

开启的最大工作进程数影响、

配置文件中配置的 worker_connections

Nginx优化有哪几种
防盗链

日志分割

网页压缩

隐藏nginx版本号

更改进程数

连接超时

缓存时间

epoll机制优化(提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率,若工作进程数为 8,每个进程处理 4096 个连接,则允许 Nginx 正常提供服务的连接数已超过 3 万个(4 096×8=32 768))

数据流向内部分为三个层面

在这里插入图片描述

Tomcat由哪三部分组成

  1. Web 容器:完成 Web 服务器的功能。
  2. Servlet 容器:名字为 catalina,用于处理 Servlet 代码。
  3. JSP 容器:用于将 JSP 动态网页翻译成 Servlet 代码

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值