verysu 设计模式 设计模式 响应式编程 百度开发平台 codeforces leetcode usfca

导航

数据库面试题

1.binlog的3种格式,类型对比   statement,row,mixed  是二进制的

 

 

 set session binlog_format='statement';  show variables like 'binlog_format'; 

show master status;

show binlog events in 'mysql-bin.000002';

查看生成的binlog内容 

mysqlbinlog -vv D:\program_files\phpstudy\PHPTutorial\MySQL\binlog\mysql-bin.000002 --start-position=5083

statement类型  

选择不同的索引,会导致结果不同
now()等和当时环境有关的函数时,也会造成数据的不一致

row类型

binlog_row_image参数需要设置为full,不然不会记录所有字段信息,只会记录能够表示一行的字段,从而导致无法使用其进行数据恢复

优点:在row模式下,bin-log中可以不记录执行的sql语句的上下文相关信息,仅仅需要记录哪一条记录被修改了,修改成什么信样了,
所以row的日志内容会非常清楚的记录下每一行数据修改的细节,非常容易理解。而且不会出现在某些特定情况下的存储过程和function,以及trigger的调用和处罚无法被正确问题。 缺点:在row模式下,所有执行的语句当记录到日志中的时候,都将以每行记录的修改来记录,这样可能会产生大量的日志内容。

 2.redis的备份方式

RDB恢复大数据集速度快,它是一个整体。大文件rdb耗时。时间间隔长的话丢失数据多。

AOF的fsync策略有一秒,每次,无。默认是一秒,所以最坏情况下丢失一秒的数据。文件体积变得过大时,自动地在后台对 AOF 进行重写。相同的数据集aof通常大于rdb,rdb恢复数据集比aof快

 

 

 3.eureka和zookeeper

往zookeeper的leader节点写数据时,leader会对剩下的follower节点进行主从数据同步,它必须得同步超过半数的follower节点才给客户端返回写成功的信号

leader节点挂了,zookeeper集群在剩的follower中重新选leader。选需要时间,哪怕30s到120秒,这一段时间之内,zookeeper集群是不能给外部提供服务的

所以zookeeper是cp(保证了数据一致性,但是却不是强一致性)

Eureka的客户端向Eureka注册连接失败,会自动切换至其它节点,只要有一台Eureka还在,就能保证注册服务可用(保证可用性),只不过查到的信息可能不是最新的(不保证强一致性),所以是ap

 4.nacos和eureka的区别

  • eureka只支持AP,通过心跳检查、客户端缓存等机制,确保了系统的高可用性、灵活性和可伸缩性

  • nacos支持CP和AP两种,注册Nacos的client节点注册时是ephemeral=true即为临时节点,那么Naocs集群对这个client节点效果就是AP,反之则是CP

  • #false为永久实例,true表示临时实例开启,注册为临时实例 spring.cloud.nacos.discovery.ephemeral=true
  1. nacs使用的是netty和服务直接进行连接,属于长连接
  2. eureka是使用定时发送和服务进行联系,属于短连接

posted on 2023-03-15 21:24  泳之  阅读(35)  评论(0编辑  收藏  举报

我是谁? 回答错误