1.为什么要读写分离:2.为什么多个从数据库用来读,主数据库是用来写操作。3.master是主库,slave是从库(奴隶)。4.reboot:重启:tomcat和redis等服务都停止运行,但是mysql会自启动。5.主从复制原理:6.主从复制的步骤:7.主库需要创建一个具有复制(binlog)权限的账号。8.主从数据库之间的服务器id要唯一9.position-指针。file是开始同步的日志文件。10.所有表和库都会被复制嘛?11.只能在主库上增删改操作,不能在从表上增删改。12.怎么实现主数据库更新的监听???13.round_robin轮询策略。从库轮着响应请求。14.Sharding jdbc原理:14.sharding jdbc的配置文件:15.新建分支作用之一:目前有些东西不需要合到主分上。16.从库已经停了,如果主库一直发生变化产生了一堆日志,过一段时间从库再次使用的时候会不会出现错误??17.负载均衡:指的是tomcat服务器18.Nginx功能:高并发和 分发请求。nginx是开源的服务器,也支持集群。19.nigex.conf:在http块中可以包含多个server块,每个server块可以配置多个location块。20.http模式是80端口,https是443端口。21.https是什么。22.HTTPS和HTTP的区别主要为以下四点:23.应用场景:24.Nignx配置可以,调优,全局块啥的。25.如果访问不到80端口:26.由于多个服务器的性能可能不同,nignx可以配置比例(写死的)。27.多开问题:28.Nginx中提供了下面几种负载均衡策略:29.负载均衡策略拓展:30.分布式和集群的简述:31.fastjson:json解析jar包。
1.为什么要读写分离:1)读写所有压力都由一台数据库承担,压力大。
2)数据库服务器磁盘损坏数据丢失,单点故障。
2.为什么多个从数据库用来读,主数据库是用来写操作。节省资源:28原则(2是写操作,8是读操作)。
3.master是主库,slave是从库(奴隶)。 4.reboot:重启:tomcat和redis等服务都停止运行,但是mysql会自启动。 5.主从复制原理:MySQL的主从复制其实就是由主库生成binlog,里面记录用户对数据库产生影响的操作。从库负责读取这个日志,并进行解析得到对应的SQL语句,然后在自己所在的服务器上执行,就可以得到跟主库一致的数据了。
io线程读取 主数据库binlog文件到本地relaylog,sql线程把relaylog还原为sql语句。
6.主从复制的步骤:MySQL复制过程分成三步:
1. master将数据变更写入二进制日志 2. slave将master的二进制日志拷贝到它的中继日志(relay log) 3. slave重做中继日志中的事件,生成对应的数据存储到自己的数据区
拓展:二进制日志:也称为binlog,这是MySQL自带的一种日志功能,它会记录下所有的增删改语句,但是不包括查询语句。
Binlog 是 MySQL Server 维护的一种二进制日志,主要是用来记录对 MySQL 数据更新或潜在发生更新的 SQL 语句,并以"事务"的形式保存在磁盘中(文件) 主要用途 1. 复制:MySQL 的 Master-Slave 协议,让 Slave 可以通过监听 Binlog 实现数据复制,达到数据一致的目的 2. 数据恢复:通过 mysqlbinlog 工具恢复数据 3. 增量备份 https://blog.csdn.net/weixin_39116497/article/details/1077523957.主库需要创建一个具有复制(binlog)权限的账号。
slave必须是被master授权具有该权限的用户,才能通过该用户复制。
GRANT REPLICATION SLAVE ON *.* to 'xiaoming'@'%' identified by 'Root@123456';8.主从数据库之间的服务器id要唯一 9.position-指针。file是开始同步的日志文件。
change master to master_host='192.168.44.128', -- 主节点ip地址 master_user='xiaoming', -- 主节点创建的用于主从复制的账号 master_password='Root@123456', -- 上面账号的密码 master_log_file='mysql-bin.000003', -- 从主节点哪个日志文件开始同步 master_log_pos=258; -- 从主节点日志文件的哪个位置开始同步10.所有表和库都会被复制嘛?
从主从建立好关系开始:后面所有新的操作都会被同步复制。
注意:从开启主存复制之后的操作才会被复制。
11.只能在主库上增删改操作,不能在从表上增删改。如果操作从库,那么主从的指针就对不上了。
12.怎么实现主数据库更新的监听???MySQL 的 Master-Slave 协议,让 Slave 可以通过监听 Binlog 实现数据复制,达到数据一致的目的
13.round_robin轮询策略。从库轮着响应请求。 14.Sharding jdbc原理:shardingjdbc自动解析数据库语句请求,根据分库分表的策略,改写替换真实的对应的表名。然后用真实的sql操作主从数据库。
14.sharding jdbc的配置文件:main: #该配置项的目的,就是如果当前项目中存在同名的bean,后定义的bean会覆盖先定义的。
allow-bean-definition-overriding: true
我们需要用到的是 shardingjdbc包下的dataSource,所以我们需要配置上述属性,让后加载的覆盖先加载的。
15.新建分支作用之一:目前有些东西不需要合到主分上。
比如数据库读写分离,开发的时候还是使用单表方便。
16.从库已经停了,如果主库一直发生变化产生了一堆日志,过一段时间从库再次使用的时候会不会出现错误??不会,他会根据指针和文件的位置,自动从上次丢失点开始同步
17.负载均衡:指的是tomcat服务器一台tomcat的访问量200-400
mysql最大访问量2000
18.Nginx功能:高并发和 分发请求。nginx是开源的服务器,也支持集群。软件如果无法解决高并发,还得用硬件来解决。(硬件很贵)
19.nigex.conf:在http块中可以包含多个server块,每个server块可以配置多个location块。 20.http模式是80端口,https是443端口。 21.https是什么。HTTPS的全称是超文本传输安全协议(Hypertext Transfer Protocol Secure),是一种网络安全传输协议。在HTTP的基础上加入SSL/TLS来进行数据加密,保护交换数据不被泄露、窃取。
通俗的来说,就是: 当你登陆一个有网站的网页时形成, 在填写该表格并点击“提交”后,您输入的信息可能被黑客截获不安全网站。 这些信息可以是银行交易的详细信息,也可以是您输入的个人隐私。 在黑客眼中,这种“拦截”通常被称为“中间人攻击”。 实际的攻击可能以多种方式发生,但最常见的一种是:黑客在托管网站的服务器上放置一个小的未检测到的监听程序。该程序在后台等待,直到访问者开始在网站上键入信息,并且它将激活以开始捕获信息,然后将其发送给黑客。 当您访问使用SSL加密的网站时,也就是HTTPS协议的网站,浏览器将与该网站建立友好加密的通道,保护您的隐私等数据不被泄露,没有人可以查看或访问您在浏览器中输入的内容,保证数据传输的安全性。22.HTTPS和HTTP的区别主要为以下四点:
一、HTTPS协议需要到证书颁发机构CA申请证书,HTTP不用申请证书; 二、HTTP是超文本传输协议,属于应用层信息传输,HTTPS 则是具有SSL加密传安全性传输协议,对数据的传输进行加密,相当于HTTP的升级版; 三、HTTP和HTTPS使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。 四、HTTP的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比HTTP协议安全。
原文链接:https://blog.csdn.net/whl190412/article/details/91865397
23.应用场景:1)静态资源:可以部署静态资源,html js css image video
注意:.jsp是servlet-java代码,不是静态资源。
2)反向代理:
代理: 给某个对象提供一个代理对象,并由代理对象控制原对象的引用
正向代理: 对客户端进行代理(例如VPN)
反向代理: 对服务端进行代理
反向代理,就是对服务端进行代理,作为客户端,只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,再响应给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,**暴露的是代理服务器地址,隐藏了真实服务器IP地址。**防止真实服务器被攻击
3)负载均衡:负载均衡(Load Balance, LB)意思就是将一份负载分摊到多个操作单元上进行执行
24.Nignx配置可以,调优,全局块啥的。 25.如果访问不到80端口:1)看ip对不对
2)看防火墙是否开启端口。
声明反向代理:tomcatserver:纯字母全小写。写特殊字符可能会出问题。
复制粘贴的时候,不要复制粘贴注释,格式会很乱。
location / {
# 声明反向代理
proxy_pass http://tomcatserver;
}
26.由于多个服务器的性能可能不同,nignx可以配置比例(写死的)。
27.多开问题:
一个服务器可以开多个tomcat软件。
一个linux可以开启多个窗口。
java程序要想打印日志到其他文件中,需要后台运行才可以。
28.Nginx中提供了下面几种负载均衡策略:| 名称 | 说明 | 特点 |
|---|---|---|
| 轮询 | 默认方式 | |
| weight | 权重方式 | 根据权重分发请求,权重大的分配到请求的概率大 |
| ip_hash | 依据ip分配方式 | 根据客户端请求的IP地址计算hash值, 根据hash值来分发请求, 同一个IP发起的请求, 会发转发到同一个服务器上 |
| least_conn | 依据最少连接方式 | 哪个服务器当前处理的连接少, 请求优先转发到这台服务器 |
| url_hash | 依据url分配方式 | 根据客户端请求url的hash值,来分发请求, 同一个url请求, 会发转发到同一个服务器上 |
| fair | 依据响应时间方式 | 优先把请求分发给处理请求时间短的服务器 |
负载均衡策略好像只能用一个,不能同时使用多个。
withde:权重,加权轮询。
ip_hash:根据ip找到对应的tomcat,不会出现神经病现象。
url_hash:
1)根据redis.的缓存–依据url_hash不会重复加载缓存。
2)根据微服务。
30.分布式和集群的简述:分布式:一个业务分拆多个子业务,部署在不同的服务器上
集群:同一个业务,部署在多个服务器上
链接忘了。。。



