/eat-distribution

小白的 分布式 学习之路

Apache License 2.0Apache-2.0

eat-distribution

小白的 分布式 学习之路

干就玩了,面向面试,冲冲冲

分布式算法

  • 1 basic
  • 2 分布式协调与同步
    • 分布式互斥
    • 分布式选举
    • 分布式共识
    • 分布式事务

网络

  • HTTP

    • 发展历程
    • 网络模型
    • 域名
    • 报文结构
    • 请求方法
    • URI
    • 响应状态码
    • HTTP的优缺点
    • HTTP的实体数据
    • HTTP传输大文件的方法
    • HTTP连接管理
    • HTTP的重定向和跳转
    • HTTP的Cookie机制
    • HTTP的缓存控制
    • HTTP的代理服务
    • HTTP的缓存代理
    • HTTPS与SSL/TLS
    • 对称加密与非对称加密
    • 数字签名与证书

    skip

    • TLS1.2连接过程解析
    • TLS1.3特性解析
    • HTTPS的优化
    • HTTPS迁移

    skip end

    • HTTP2特性
    • HTTP2内核剖析
    • HTTP3
    • HTTP2迁移
    • WebSocket
    • HTTP优化

面试题重构

  • OSI与TCP/IP协议族

    • 协议族各层的结构与功能?
    • 各层的主要协议及其功能?
    • 在浏览器中输入url地址到显示主页的过程?
  • HTTP

微服务

鉴权

服务发现

Kafka

  • 01 消息引擎ABC
  • 02 Kafka术语
  • 03 Kafka只是消息引擎系统吗?
  • 04 我应该选择哪种Kafka?
  • 05 Kafka的版本号
  • 06 Kafka线上集群部署方案怎么做?
  • 07 集群参数配置上
  • 08 集群参数配置下
  • 09 生产者消息分区机制原理剖析
  • 10 生产者压缩算法面面观
  • 11 无消息丢失配置怎么实现?
  • 12 客户端都有哪些不常见但是很高级的功能?
  • 13 Java生产者是如何管理TCP连接的?
  • 14 幂等生产者和事务生产者是一回事吗

4月4日之前

Spring

Spring boot

Spring cloud

Dubbo

Redis

JVM

深入拆解JAVA虚拟机

  • 01 Java代码是怎么运行的
  • 02 Java的基本类型
  • 03 Java虚拟机是如何加载Java类的
  • 04 JVM是如何执行方法调用的(上)?

太难了,先暂停

尚硅谷 JVM

  • 20210326 15
  • 20210328 38
  • 20210329 类加载器 笔记整理

20210404前 刷完 前 100课

笔记

https://gitee.com/moxi159753/LearningNotes/tree/master/JVM

Mysql

基础

  • 1 基础架构

    • MySQL框架有几个组件, 各有什么作用?(一句SQL的执行流程)
    • Server层和存储引擎层各有什么作用?
    • 长连接和短链接的区别和应用场景?
    • 对于表的操作权限验证在哪里进行?
    • 在词法分析和语法分析阶段分别会做什么?
  • 2 日志系统

    • redo log的是什么? 为什么会存在?
    • 如果数据库误操作, 如何执行数据恢复?
    • 什么是两阶段提交?为什么需要两阶段提交?两阶段提交怎么保证数据库中两份日志间的逻辑一致性?
    • 如果不是两阶段提交, 先写redolog和先写binlog两种情况各会遇到什么问题?
  • 3 事务隔离

    • 事务的概念是什么?
    • 事务隔离级别读未提交, 读已提交, 可重复读, 串行各是什么?
    • 事务隔离是怎么通过read-view(读视图)实现的?
    • 可重复读的使用场景举例?
    • 事务的启动方式有哪几种?
    • 长事务
      • 使用长事务有什么弊病?
      • 如何避免长事务的出现?
      • 怎么查询各个表中的长事务?
      • commit work and chain 语法是做什么用的?
  • 04-05 索引

    • 索引的常见模型
    • InnoDB的索引模型
    • 索引维护
    • 覆盖索引
    • 最左前缀原则
    • 索引下推
  • 06 全局锁和表锁

    • MySQL从加锁范围上分为哪三类?
    • 全局锁加锁方法的执行命令是什么?主要的应用场景是什么?
    • 做整库备份时为什么要加全局锁?
    • MySQL的自带备份工具, 使用什么参数可以确保一致性视图, 在什么场景下不适用?
    • 不建议使用set global readonly = true的方法加全局锁有哪两点原因?
    • 表级锁有哪两种类型? 各自的使用场景是什么?
    • MDL中读写锁之间的互斥关系怎样的?
    • 如何安全的给小表增加字段?
  • 07 行锁

    • 两阶段锁的概念是什么?对事务使用有什么帮助?
    • 死锁的概念是什么?举例说明出现死锁的情况
    • 死锁的处理策略有哪两种?
    • 等待超时处理死锁的机制是什么?有什么局限?
    • 死锁检测的机制是什么?有什么局限?
    • 有哪些思路可以解决热点更新导致的并发问题?
  • 08 事务隔离 (难,先跳过)

实践

  • 09 普通索引和唯一索引,应该怎么选择?

    • 选择普通索引还是唯一索引?
    • change buffer的使用场景?
  • 10 MySQL为什么有时候会选错索引?

    • MySQL如何判断一个查询的扫描行数?
    • 索引基数如何计算?通过哪个参数可以设置索引统计的存储方式?
    • 重新统计索引信息的命令是什么?
    • 如何定位索引选择异常这样的问题?
    • 索引选择异常的问题可以有哪几种处理方式?
  • 11 怎么给字符串字段加索引?

    • 采用整个字符串作为索引. 在查询操作时, 执行顺序是怎样的?
    • 采用部分字段做索引, 在查询操作时, 执行顺序是怎样的?
    • 怎么确定前缀索引的长度?
    • 前缀索引相比较整个字段做索引有什么优势和劣势?
    • 采用反序存储和hash字段作为索引有什么异同点?
  • 12 为什么我的MySQL会抖一下?

    • 脏页和干净页的定义是什么?
    • 什么情况下回引发数据库的flush操作?各操作对MySQL的性能的影响是怎样的?
    • innodb_io_capacity这个参数的作用是什么,这个参数设置错误可能导致什么样的后果, 如何正确的设置这个参数?
    • Mysql如何控制刷脏页的速度?
    • innodb_flush_neighbor这个参数表示什么意思,应该如何设置?
  • 13 为什么表数据删掉一般,表文件大小不变?

    • 为什么删除了表一般的数据,表文件的带下却没发生变化?
    • 表的数据信息存在哪里?
    • 表的结构信息存在哪里?
    • 如何才能删除表数据后,缩小表文件的大小?
    • 空洞是什么?怎么产生的?
    • Online 和 inplace是什么?
  • 14 count(*)这么慢,我该怎么办?

    • count(*)的实现方式在MySAM引擎和InnoDB引擎的实现方式各是怎么样的? 为什么会有这种不同?
    • 那么如果有一个页面要经常显示交易系统的操作记录 总数,到底该怎么办?
    • count(字段),count(id),count(1), count(*)各自是怎么样的执行机制, 效率排序是怎么样的?
  • 15 答疑:日志和索引相关问题

  • 16 order by 是怎么工作的?

    • 全字段排序的流程是怎么样的?
    • sort_buffer_size, number_of_tmp_files, packed_additional_fields 这几个参数各是什么含义?
    • rowid排序的流程是怎么样的?
    • 优化数据库排序的方法?
  • 17 如何正确地显示随机信息?

    • order by rand()的执行流程?
    • 随机排序的方法有哪些?
  • 18 为什么这些SQL语句逻辑相同,性能却差异这么巨大?

    • SQL在索引上如果做了函数操作会怎样?
    • 如何避免在索引上做函数操作?
  • 19 为什么我只查一行地语句,也执行这么慢?

    • 查询长时间不返回是什么情况?怎么处理?
    • 查询慢一般是什么情况?怎么处理?
  • 20 幻读是什么,幻读有什么问题? (跳过)

  • 21 为什么我只改一行语句,锁这么多?(跳过)

  • 22 MySQL有哪些“饮鸩止渴”提高性能的方法?

    • 怎样应对短连接风暴?
    • 出现慢查询性能问题的原因有哪些?如何避免?
    • 如何在数据库端解决QPS突增的问题?
  • 23 MySQL是怎么保证数据不丢的?(有点难,看了一半,需要再好好学一下日志那部分)

    • binlog 的写入机制
    • redo log的写入机制
  • 24 MySQL是怎么保证主备一致的?

    • 主备的基本原理?
    • binlog的三种格式?
    • 什么是循环复制问题?怎样解决?
  • 25 MySQL是怎么保证高可用的?

    • 什么是主备延迟?
    • 主备延迟的来源?
    • 可靠性优先策略?
    • 可用性优先策略?
  • 26 备库为什么会延迟好几个小时?

    • 按表并行复制策略?
    • 按行并行复制策略?
    • MySQL5.6 的并行复制策略?
    • MariaDB 的并行复制策略?
    • MySQL5.7 的并行复制策略?
    • MySQL 5.7.22的并行复制策略?

优化整理

11 字符串索引优化

12 控制刷脏页的方法和对应的监控方式

13 优化表空间

14 count(*)

18 随机信息

SQL

  • 01 了解SQL
  • 02 DBMS的前世今生
  • 03 SQL是如何执行的
  • 04 使用DDL创建数据库&数据表时需要注意什么?
  • 05 检索数据
  • 06 数据过滤
  • 07 函数
  • 08 聚集函数
  • 09 子查询
  • 10 SQL标准 & 连接

并发

Flink