Appearance
Go 云原生完整面试题库
本题库完整导入用户提供的《golang 云原生面试题》技术部分:PDF 第 1–106 页,共 369 题、14 篇主题、29 处技术插图。题目、答案、示例代码、输出和原始重复题均保留;第 107 页及开头的关注网站广告未导入。
代码中的原件错误或历史版本结论保留以便追溯;仅整理字形、PDF 断行及代码缩进,不补造原件没有的答案。参见 校正说明。
每题标明原 PDF 物理页码与稳定标题 ID。完整覆盖台账见 source-map.json。Kubernetes 题目收在本题库内。
按主题与题目浏览
Go 基础、类型与数据结构(24 题)
- 与其他语言相比,使用 Go 有什么好处?(PDF 第 1–1 页)
- Golang 使用什么数据类型?(PDF 第 1–1 页)
- 整型切片有哪些初始化的方式(PDF 第 1–1 页)
- Go 语言中 cap 函数可以作用于哪些内容?(PDF 第 2–2 页)
- 输入 non-empty interface(PDF 第 2–2 页)
- Go 语言当中 new 的作用是什么(PDF 第 2–2 页)
- Go 语言中 make 的作用是什么(PDF 第 2–2 页)
- Go 程序中的包是什么(PDF 第 3–3 页)
- Printf(),Sprintf(),FprintF() 都是格式化输出,有什么不同(PDF 第 3–3 页)
- Go 语言当中数组和切片的区别是什么?(PDF 第 3–3 页)
- 拷贝大切片一定比小切片代价大吗?(PDF 第 3–3 页)
- json包变量不加tag会怎么样?(PDF 第 3–3 页)
- Go 语言当中数组和切片在传递的时候的区别是什么?(PDF 第 4–4 页)
- Go 语言是如何实现切片扩容的?(PDF 第 4–4 页)
- Golang Slice 的底层实现(PDF 第 5–5 页)
- Golang Slice 的扩容机制,有什么注意点?(PDF 第 5–5 页)
- 扩容前后的 Slice 是否相同?(PDF 第 5–5 页)
- Golang 的参数传递、引用类型(PDF 第 5–5 页)
- Golang Map 底层实现(PDF 第 6–6 页)
- Golang Map 如何扩容(PDF 第 6–6 页)
- Golang Map 查找(PDF 第 6–6 页)
- nil切片和空切片的区别(PDF 第 15–15 页)
- 如何获取结构体tag信息(PDF 第 16–17 页)
- go struct能不能比较(PDF 第 22–22 页)
Go 并发、Channel 与同步原语(28 题)
- Go 当中同步锁有什么特点?作用是什么(PDF 第 1–1 页)
- Go 语言当中 Channel(通道)有什么特点,需要注意什么?(PDF 第 1–2 页)
- Go 语言当中 Channel 缓冲有什么特点?(PDF 第 2–2 页)
- 关于select机制(PDF 第 2–2 页)
- Log包线程安全吗(PDF 第 3–3 页)
- Goroutine和线程的区别?(PDF 第 4–4 页)
- 介绍一下 Channel(PDF 第 6–6 页)
- Channel 的 ring buffer 实现(PDF 第 6–7 页)
- for循环select时,如果通道已经关闭会怎么样?如果select中的case只有一个,又会怎么样?(PDF 第 7–7 页)
- go语言的并发机制以及它所使用的CSP并发模型(PDF 第 24–25 页)
- Golang 中 Goroutine 如何调度(PDF 第 25–27 页)
- Golang 中常用的并发模型(PDF 第 27–30 页)
- 并发编程概念是什么?(PDF 第 30–30 页)
- Mutex 几种状态(PDF 第 30–30 页)
- Mutex 正常模式和饥饿模式(PDF 第 30–30 页)
- Mutex 允许自旋的条件(PDF 第 30–31 页)
- RWMutex 实现(PDF 第 31–31 页)
- RWMutex 注意事项(PDF 第 31–31 页)
- Cond 是什么(PDF 第 31–31 页)
- Broadcast 和 Signal 区别(PDF 第 31–31 页)
- Cond 中 Wait 使用(PDF 第 32–32 页)
- WaitGroup 用法(PDF 第 32–32 页)
- WaitGroup 实现原理(PDF 第 32–32 页)
- 什么是 sync.Once(PDF 第 32–32 页)
- 什么操作叫做原子操作(PDF 第 32–32 页)
- 原子操作和锁的区别(PDF 第 32–32 页)
- 什么是 CAS(PDF 第 33–33 页)
- sync.Pool 有什么用(PDF 第 33–33 页)
Go Runtime、调度、内存与 GC(22 题)
- uintptr和unsafe.Pointer的区别(PDF 第 17–18 页)
- 知道golang的内存逃逸吗?什么情况下会发生内存逃逸?(PDF 第 18–19 页)
- 怎么避免内存逃逸(PDF 第 19–21 页)
- Goroutine 定义(PDF 第 33–33 页)
- GMP 指的是什么(PDF 第 33–33 页)
- 1.0 之前 GM 调度模型(PDF 第 33–33 页)
- GMP 调度流程(PDF 第 34–34 页)
- GMP 中 work stealing 机制(PDF 第 34–34 页)
- GMP 中 hand off 机制(PDF 第 34–34 页)
- 协作式的抢占式调度(PDF 第 34–35 页)
- 基于信号的抢占式调度(PDF 第 35–35 页)
- GMP 调度过程中存在哪些阻塞(PDF 第 35–35 页)
- Sysmon 有什么作用(PDF 第 35–35 页)
- 三色标记原理(PDF 第 36–36 页)
- 写屏障(PDF 第 37–38 页)
- 插入写屏障(PDF 第 38–38 页)
- 删除写屏障(PDF 第 38–38 页)
- 混合写屏障(PDF 第 38–38 页)
- GC 触发时机(PDF 第 38–38 页)
- Go 语言中 GC 的流程是什么?(PDF 第 38–38 页)
- GC 如何调优(PDF 第 38–38 页)
- Golang GC 时会发生什么?(PDF 第 39–40 页)
Go 编程题与代码分析(21 题)
- 看下面代码的 defer 的执行顺序是什么? defer 的作用和特点是什么?(PDF 第 4–5 页)
- 下面的代码是有问题的,请说明原因(PDF 第 7–7 页)
- 交替打印数字和字母(PDF 第 7–8 页)
- 下列代码是否会触发异常(PDF 第 9–9 页)
- 如何在运行时检查变量类型?(PDF 第 9–9 页)
- 判断字符串中字符是否全都不同(PDF 第 9–10 页)
- 翻转字符串(PDF 第 10–10 页)
- 翻转含有中文、数字、英文字母的字符串(PDF 第 11–11 页)
- 判断两个给定的字符串排序后是否一致(PDF 第 11–12 页)
- 字符串替换问题(PDF 第 12–12 页)
- 下列代码有什么问题(PDF 第 13–13 页)
- 下列代码输出什么(PDF 第 13–13 页)
- 下列代码输出什么(PDF 第 13–13 页)
- 机器人坐标问题(PDF 第 13–15 页)
- 字符串转成byte切片,无内存拷贝的实现(PDF 第 15–16 页)
- 下列代码会造成死循环吗?(PDF 第 17–17 页)
- 下面代码能运行吗?为什么(PDF 第 22–22 页)
- 请说出下面代码存在什么问题(PDF 第 23–23 页)
- Go 支持什么形式的类型转换?将整数转换为浮点数(PDF 第 23–23 页)
- Go 语言当中值传递和地址传递(引用传递)如何运用?有什么区别?举例说明(PDF 第 23–23 页)
- 写出打印的结果(PDF 第 23–24 页)
Go 框架与测试(1 题)
- Go Convey 是什么?一般用来做什么?(PDF 第 2–2 页)
微服务、DDD 与接口设计(17 题)
- 您对微服务有何了解?(PDF 第 41–41 页)
- 说说微服务架构的优势(PDF 第 41–42 页)
- 微服务有哪些特点(PDF 第 42–42 页)
- 设计微服务的最佳实践是什么(PDF 第 42–42 页)
- 微服务架构如何运作(PDF 第 42–42 页)
- 微服务架构的优缺点是什么(PDF 第 43–43 页)
- 单片,SOA 和微服务架构有什么区别?(PDF 第 43–43 页)
- 在使用微服务架构时,您面临哪些挑战?(PDF 第 43–44 页)
- SOA 和微服务架构之间的主要区别是什么?(PDF 第 44–44 页)
- 微服务有什么特点(PDF 第 44–44 页)
- 什么是领域驱动设计(PDF 第 45–45 页)
- 为什么需要域驱动设计(DDD)(PDF 第 45–45 页)
- 什么是无所不在的语言(PDF 第 45–45 页)
- 什么是凝聚力(PDF 第 45–45 页)
- 什么是耦合(PDF 第 45–45 页)
- 、什么是 REST / RESTful 以及它的用途是什么?(PDF 第 45–45 页)
- 什么是不同类型的微服务测试(PDF 第 46–46 页)
Docker、容器与 DevOps(28 题)
- 为什么需要 DevOps(PDF 第 46–46 页)
- Docker 是什么?(PDF 第 46–46 页)
- DevOps 有哪些优势?(PDF 第 46–46 页)
- CI 服务有什么用途?(PDF 第 46–46 页)
- 如何使用 Docker 技术创建与环境无关的容器系统?(PDF 第 47–47 页)
- Dockerfile 配置文件中的 COPY 和 ADD 指令有什么不同?(PDF 第 47–47 页)
- Docker 镜像(image)是什么?(PDF 第 47–47 页)
- Docker 容器(container)是什么(PDF 第 47–47 页)
- Docker 中心(hub)什么概念(PDF 第 47–47 页)
- 在任意给定时间点指出一个 Docker 容器可能存在的运行阶段(PDF 第 47–47 页)
- 有什么方法确定一个 Docker 容器运行状态(PDF 第 47–47 页)
- 在 Dockerfile 配置文件中最常用的指令有哪些?(PDF 第 48–48 页)
- 什么类型的应用(无状态性或有状态性)更适合 Docker 容器技术(PDF 第 48–48 页)
- 解释基本 Docker 应用流程(PDF 第 48–48 页)
- Docker Image 和 Docker Layer (层) 有什么不同?(PDF 第 48–48 页)
- 虚拟化技术是什么?(PDF 第 48–49 页)
- 虚拟管理层(程序)是什么(PDF 第 49–49 页)
- Docker 集群(Swarm)是什么(PDF 第 49–49 页)
- 在使用 Docker 技术的产品中如何监控其运行(PDF 第 49–49 页)
- 什么是孤儿卷及如何删除它(PDF 第 49–49 页)
- 什么是半虚拟化(Paravirtualization)(PDF 第 50–50 页)
- Docker 技术与虚拟机技术有何不同?(PDF 第 50–51 页)
- 请解释一下 docerfile 配置文件中的 ONBUILD 指令的用途含义(PDF 第 51–51 页)
- 有否在创建有状态性的 Docker 应用的较好实践?最适合的场景有什么(PDF 第 51–51 页)
- 容器化技术在底层的运行原理?(PDF 第 51–52 页)
- 说说容器化技术与虚拟化技术的优缺点(PDF 第 52–52 页)
- 如何使 Docker 适应多种运行环境(PDF 第 52–52 页)
- 为什么 Docker compose 采取的是并不等待前面依赖服务项的容器启动就绪后再启动的组合容器启动策略?(PDF 第 52–53 页)
Go 云原生题库:Kubernetes 面试题(46 题)
- 什么是k8s?说出你的理解(PDF 第 53–53 页)
- k8s的组件有哪些,作用分别是什么(PDF 第 53–54 页)
- kubelet的功能、作用是什么?(PDF 第 54–54 页)
- kube-api-server的端口是多少?各个pod是如何访问kube-api-server的?(PDF 第 54–54 页)
- k8s中命名空间的作用是什么(PDF 第 54–54 页)
- k8s提供了大量的REST接口,其中有一个是Kubernetes Proxy API接口,简述一下这个Proxy接口的作用,已经怎么使用(PDF 第 55–55 页)
- pod是什么(PDF 第 55–55 页)
- pod的原理是什么(PDF 第 55–55 页)
- pod有什么特点?(PDF 第 55–55 页)
- pause容器作用是什么(PDF 第 55–55 页)
- pod的重启策略有哪些(PDF 第 56–56 页)
- pod的镜像拉取策略有哪几种(PDF 第 56–56 页)
- pod的存活探针有哪几种?(PDF 第 56–56 页)
- 存活探针的属性参数有哪几个?(PDF 第 56–56 页)
- pod的就绪探针有哪几种?(PDF 第 56–57 页)
- 就绪探针的属性参数有哪些(PDF 第 57–57 页)
- 就绪探针与存活探针区别是什么(PDF 第 57–57 页)
- 简单讲一下 pod创建过程(PDF 第 57–58 页)
- 简单描述一下pod的终止过程(PDF 第 58–58 页)
- pod的生命周期有哪几种(PDF 第 58–58 页)
- pod一致处于pending状态一般有哪些情况,怎么排查?(PDF 第 58–59 页)
- pod的初始化容器是干什么的?(PDF 第 59–59 页)
- pod的资源请求、限制如何定义?(PDF 第 59–59 页)
- pod的定义中有个command和args参数,这两个参数不会和docker镜像的entrypointc冲突吗(PDF 第 59–59 页)
- 标签及标签选择器是什么,如何使用(PDF 第 59–59 页)
- service是如何与pod关联的(PDF 第 60–60 页)
- service的域名解析格式、pod的域名解析格式(PDF 第 60–60 页)
- service的类型有哪几种(PDF 第 60–61 页)
- 一个应用pod是如何发现service的,或者说,pod里面的容器用于是如何连接service的?(PDF 第 61–61 页)
- 如何创建一个service代理外部的服务,或者换句话来说,在k8s集群内的应用如何访问外部的服务,如数据库服务,缓存服务等?(PDF 第 61–61 页)
- service、endpoint、kube-proxys三种的关系是什么?(PDF 第 61–61 页)
- 无头service和普通的service有什么区别,无头service使用场景是什么(PDF 第 62–62 页)
- deployment怎么扩容或缩容?(PDF 第 62–62 页)
- deployment的更新升级策略有哪些?(PDF 第 62–62 页)
- deployment的滚动更新策略有两个特别主要的参数,解释一下它们是什么意思(PDF 第 62–62 页)
- deployment更新的命令有哪些(PDF 第 62–62 页)
- 简述一下deployment的更新过程(PDF 第 62–63 页)
- deployment的回滚使用什么命令(PDF 第 63–63 页)
- 讲一下都有哪些存储卷,作用分别是什么?(PDF 第 63–64 页)
- pv的访问模式有哪几种(PDF 第 64–64 页)
- pv的回收策略有哪几种(PDF 第 64–64 页)
- 在pv的生命周期中,一般有几种状态(PDF 第 64–64 页)
- 存储类的资源回收策略(PDF 第 65–65 页)
- 怎么使一个node脱离集群调度,比如要停机维护单又不能影响业务应用(PDF 第 65–65 页)
- pv存储空间不足怎么扩容(PDF 第 65–65 页)
- k8s生产中遇到什么特别影响深刻的问题吗,问题排查解决思路是怎么样的?(PDF 第 65–66 页)
Redis、缓存与 Memcached(58 题)
- 什么是 Redis?(PDF 第 66–66 页)
- Redis 与其他 key-value 存储有什么不同?(PDF 第 67–67 页)
- Redis 的数据类型?(PDF 第 67–67 页)
- 使用 Redis 有哪些好处?(PDF 第 67–67 页)
- Redis 相比 Memcached 有哪些优势?(PDF 第 67–67 页)
- Memcache 与 Redis 的区别都有哪些?(PDF 第 67–67 页)
- Redis 是单进程单线程的(PDF 第 67–67 页)
- 一个字符串类型的值能存储最大容量是多少(PDF 第 67–67 页)
- Redis 的持久化机制是什么?各自的优缺点?(PDF 第 68–68 页)
- Redis 常见性能问题和解决方案:(PDF 第 68–68 页)
- Redis 过期键的删除策略?、(PDF 第 68–69 页)
- Redis 的回收策略(淘汰策略)?(PDF 第 69–69 页)
- 为什么 Redis 需要把所有数据放到内存中?(PDF 第 69–69 页)
- Redis 的同步机制了解么?(PDF 第 69–69 页)
- Pipeline 有什么好处,为什么要用 Pipeline?(PDF 第 69–69 页)
- 是否使用过 Redis 集群,集群的原理是什么?(PDF 第 69–69 页)
- Redis 集群方案什么情况下会导致整个集群不可用?(PDF 第 70–70 页)
- Redis 如何设置密码及验证密码?(PDF 第 70–70 页)
- 说说 Redis 哈希槽的概念?(PDF 第 70–70 页)
- Redis 集群的主从复制模型是怎样的?(PDF 第 70–70 页)
- Redis 集群会有写操作丢失吗?为什么?(PDF 第 70–70 页)
- Redis 集群之间是如何复制的?(PDF 第 70–70 页)
- Redis 集群最大节点个数是多少?(PDF 第 70–70 页)
- Redis 集群如何选择数据库?(PDF 第 70–70 页)
- 怎么测试 Redis 的连通性(PDF 第 70–70 页)
- 怎么理解 Redis 事务?(PDF 第 70–70 页)
- Redis 事务相关的命令有哪几个?(PDF 第 70–70 页)
- Redis key 的过期时间和永久有效分别怎么设置?(PDF 第 70–70 页)
- Redis 如何做内存优化?(PDF 第 71–71 页)
- Redis 回收进程如何工作的?(PDF 第 71–71 页)
- 都有哪些办法可以降低 Redis 的内存使用情况呢?(PDF 第 71–71 页)
- Redis 的内存用完了会发生什么?(PDF 第 71–71 页)
- 一个 Redis 实例最多能存放多少的 keys?(PDF 第 71–71 页)
- MySQL 里有 2000w 数据,Redis 中只存 20w 的数据,如何保证 Redis 中的数据都是热点数据?(PDF 第 71–71 页)
- Redis 最适合的场景?(PDF 第 71–72 页)
- 假如 Redis 里面有 1 亿个 key,其中有 10w 个 key 是以某个固定的已知的前缀开头的,如果将它们全部找出来?(PDF 第 72–72 页)
- 如果有大量的 key 需要设置同一时间过期,一般需要注意什么?(PDF 第 72–72 页)
- 使用过 Redis 做异步队列么,你是怎么用的?(PDF 第 72–72 页)
- 使用过 Redis 分布式锁么,它是什么回事先拿(PDF 第 73–73 页)
- 缓存如何实现高性能?(PDF 第 83–83 页)
- 缓存如何实现高并发(PDF 第 83–83 页)
- Redis 和 Memcached 的区别(PDF 第 83–83 页)
- 用缓存可能出现的问题(PDF 第 83–83 页)
- 当查询缓存报错,怎么提高可用性?(PDF 第 83–83 页)
- 如果避免缓存”穿透”的问题?(PDF 第 84–84 页)
- 如何避免缓存“雪崩”的问题(PDF 第 84–84 页)
- 如何避免缓存“击穿”的问题(PDF 第 84–84 页)
- 什么是缓存预热?如何实现缓存预热(PDF 第 85–85 页)
- 缓存数据的淘汰策略有哪些?(PDF 第 85–85 页)
- Memcached 的多线程是什么?如何使用它们?(PDF 第 101–101 页)
- Memcached 是什么,有什么作用(PDF 第 101–101 页)
- Memcached 与 Redis 的区别?(PDF 第 101–102 页)
- 如果缓存数据在导出导入之间过期了,你又怎么处理这些数据呢(PDF 第 102–102 页)
- 如何实现集群中的 session 共享存储(PDF 第 102–103 页)
- Memcached 和 MySQL 的 query cache 相比,有什么优缺点(PDF 第 103–103 页)
- Memcached 是原子的吗?(PDF 第 103–103 页)
- Memcached 能够更有效地使用内存吗(PDF 第 103–103 页)
- Memcached 的内存分配器是如何工作的?为什么不适用malloc/free?为何要使用 slabs?(PDF 第 104–104 页)
MySQL、索引与 SQL(32 题)
- 据库三大范式是什么(PDF 第 73–73 页)
- MySQL 有关权限的表都有哪几个?(PDF 第 73–73 页)
- MySQL 的 Binlog 有有几种录入格式?分别有什么区别?(PDF 第 73–73 页)
- MySQL 存储引擎 MyISAM 与 InnoDB 区别(PDF 第 73–74 页)
- MyISAM 索引与 InnoDB 索引的区别?(PDF 第 74–74 页)
- 什么是索引(PDF 第 74–74 页)
- 索引有哪些优缺点(PDF 第 74–74 页)
- 索引有哪几种类型?(PDF 第 74–75 页)
- MySQL 中有哪几种锁?(PDF 第 75–75 页)
- MySQL 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别?(PDF 第 75–75 页)
- char 和 varchar 的区别?(PDF 第 75–75 页)
- 主键和候选键有什么区别?(PDF 第 75–75 页)
- 如何在 Unix 和 MySQL 时间戳之间进行转换?(PDF 第 75–75 页)
- MyISAM 表类型将在哪里存储,并且还提供其存储格式?(PDF 第 75–75 页)
- MySQL 里记录货币用什么字段类型好(PDF 第 76–76 页)
- 创建索引时需要注意什么?(PDF 第 76–76 页)
- 使用索引查询一定能提高查询的性能吗?为什么(PDF 第 76–76 页)
- 百万级别或以上的数据如何删除(PDF 第 76–76 页)
- 什么是最左前缀原则?什么是最左匹配原则(PDF 第 76–76 页)
- 什么是聚簇索引?何时使用聚簇索引与非聚簇索引(PDF 第 77–77 页)
- MySQL 连接器(PDF 第 77–77 页)
- MySQL 查询缓存(PDF 第 77–77 页)
- MySQL 分析器(PDF 第 77–77 页)
- MySQL 优化器(PDF 第 77–77 页)
- MySQL 执行器(PDF 第 77–77 页)
- 什么是临时表,何时删除临时表?(PDF 第 78–78 页)
- 谈谈 SQL 优化的经验(PDF 第 78–78 页)
- 什么叫外链接?(PDF 第 79–79 页)
- 什么叫内链接?(PDF 第 79–79 页)
- 使用 union 和 union all 时需要注意些什么?(PDF 第 79–79 页)
- MyISAM 存储引擎的特点(PDF 第 79–79 页)
- InnoDB 存储引擎的特点(PDF 第 79–80 页)
Linux、网络与操作系统(45 题)
- 什么是 Linux(PDF 第 80–80 页)
- Unix 和 Linux 有什么区别(PDF 第 80–80 页)
- 什么是 Linux 内核?(PDF 第 80–80 页)
- Linux 的基本组件是什么?(PDF 第 80–80 页)
- Linux 的体系结构(PDF 第 80–80 页)
- BASH 和 DOS 之间的基本区别是什么?(PDF 第 81–81 页)
- Linux 开机启动过程?(PDF 第 81–81 页)
- Linux 系统缺省的运行级别?(PDF 第 81–81 页)
- Linux 使用的进程间通信方式?(PDF 第 81–81 页)
- Linux 有哪些系统日志文件?(PDF 第 81–81 页)
- 什么是交换空间(PDF 第 81–81 页)
- 什么是 Root 帐户(PDF 第 82–82 页)
- 什么是 LILO?(PDF 第 82–82 页)
- 什么是 BASH?(PDF 第 82–82 页)
- 什么是 CLI?(PDF 第 82–82 页)
- 什么是 GUI?(PDF 第 82–82 页)
- 开源的优势是什么?(PDF 第 82–82 页)
- GNU 项目的重要性是什么(PDF 第 82–82 页)
- 进程和线程的区别?(PDF 第 85–85 页)
- 协程与线程的区别?(PDF 第 85–85 页)
- 并发和并行有什么区别?(PDF 第 85–85 页)
- 进程与线程的切换流程(PDF 第 86–86 页)
- 为什么虚拟地址空间切换会比较耗时?(PDF 第 86–86 页)
- 进程间通信方式有哪些?(PDF 第 86–87 页)
- 进程间同步的方式有哪些(PDF 第 87–87 页)
- 线程同步的方式有哪些(PDF 第 88–88 页)
- 线程的分类(PDF 第 88–88 页)
- 什么是临界区,如何解决冲突?(PDF 第 88–88 页)
- 什么是死锁?死锁产生的条件?(PDF 第 88–89 页)
- 进程调度策略有哪几种(PDF 第 89–89 页)
- 进程有哪些状态(PDF 第 89–90 页)
- 什么是分页?(PDF 第 90–90 页)
- 什么是分段(PDF 第 90–91 页)
- 分页和分段有什区别(PDF 第 91–91 页)
- 什么是交换空间(PDF 第 91–91 页)
- 页面替换算法有哪些(PDF 第 91–92 页)
- 什么是缓冲区溢出?有什么危害?(PDF 第 92–92 页)
- 什么是虚拟内存(PDF 第 92–92 页)
- 讲一讲 IO 多路复用?(PDF 第 92–92 页)
- 硬链接和软链接有什么区别(PDF 第 92–92 页)
- 中断的处理过程(PDF 第 92–92 页)
- 中断和轮询有什么区别?(PDF 第 93–93 页)
- 请详细介绍一下 TCP 的三次握手机制,为什么要三次握手?(PDF 第 93–93 页)
- 讲一讲 SYN 超时,洪泛攻击,以及解决策略(PDF 第 93–93 页)
- 详细介绍一下 TCP 的四次挥手机制,为什么要有TIME_WAIT 状态,为什么需要四次握手?服务器出现了大量 CLOSE_WAIT 状态如何解决?(PDF 第 93–93 页)
Kafka 与消息队列(16 题)
- Kafka 是什么?主要应用场景有哪些?(PDF 第 94–94 页)
- 和其他消息队列相比,Kafka 的优势在哪里?(PDF 第 94–94 页)
- 什么是 Producer、Consumer、Broker、Topic、 Partition?(PDF 第 94–94 页)
- Kafka 的多副本机制了解吗?(PDF 第 95–95 页)
- Kafka 的多分区(Partition)以及多副本(Replica)机制有什么好处呢(PDF 第 95–95 页)
- Zookeeper 在 Kafka 中的作用知道吗?(PDF 第 95–95 页)
- Kafka 如何保证消息的消费顺序?(PDF 第 95–96 页)
- Kafka 如何保证消息不丢失?(PDF 第 96–96 页)
- Kafka 判断一个节点是否还活着有那两个条件?(PDF 第 96–96 页)
- producer 是否直接将数据发送到 broker 的 leader(主节点)(PDF 第 96–96 页)
- Kafka consumer 是否可以消费指定分区消息吗?(PDF 第 96–96 页)
- Kafka 高效文件存储设计特点是什么(PDF 第 96–96 页)
- partition 的数据如何保存到硬盘(PDF 第 97–97 页)
- kafka 生产数据时数据的分组策略是怎样的(PDF 第 97–97 页)
- consumer 是推还是拉?(PDF 第 97–97 页)
- Kafka 维护消费状态跟踪的方法有什么?(PDF 第 97–97 页)
分布式系统、协调与事务(13 题)
- 分布式服务接口的幂等性如何设计(PDF 第 97–97 页)
- 分布式系统中的接口调用如何保证顺序性(PDF 第 97–97 页)
- 说说 ZooKeeper 一般都有哪些使用场景(PDF 第 98–98 页)
- 分布式事务了解吗?(PDF 第 98–98 页)
- 那常见的分布式锁有哪些解决方案(PDF 第 98–98 页)
- MySQL 如何做分布式锁(PDF 第 98–98 页)
- 你了解业界哪些大公司的分布式锁框架(PDF 第 98–99 页)
- 请讲一下你对 CAP 理论的理解(PDF 第 99–99 页)
- 请讲一下你对 BASE 理论的理解(PDF 第 99–100 页)
- 请讲一下 BASE 理论的三要素(PDF 第 100–100 页)
- 分布式与集群的区别是什么(PDF 第 100–100 页)
- 请说一下对两阶段提交协议的理解(PDF 第 100–101 页)
- 请讲一下对 TCC 协议的理解(PDF 第 101–101 页)
MongoDB 与 Elasticsearch(18 题)
- ObjectID 有哪些部分组成(PDF 第 104–104 页)
- 当我试图更新一个正在被迁移的块(chunk)上的文档时会发生什么(PDF 第 104–104 页)
- 为什么要在 MongoDB 中使用分析器(PDF 第 104–104 页)
- 解释一下 MongoDB 中的索引是什么(PDF 第 104–104 页)
- 什么是集合(表)(PDF 第 104–104 页)
- 什么是 NoSQL 数据库?NoSQL 和 RDBMS 有什么区别?在哪些情况下使用和不使用 NoSQL 数据库?(PDF 第 104–104 页)
- 提及插入文档的命令语法是什么?(PDF 第 104–104 页)
- 如果在一个分片(shard)停止或者很慢的时候,我发起一个查询会怎样(PDF 第 105–105 页)
- 如何执行事务/加锁?(PDF 第 105–105 页)
- Elasticsearch 读取数据(PDF 第 105–105 页)
- 您能解释一下 X-Pack for Elasticsearch 的功能和重要性吗(PDF 第 105–105 页)
- Elasticsearch 中的节点(比如共 20 个),其中的 10 个选了一个 master,另外 10 个选了另一个 master,怎么办(PDF 第 105–105 页)
- 解释一下 Elasticsearch 集群中的索引的概念?(PDF 第 105–105 页)
- 你可以列出 Elasticsearch 各种类型的分析器吗(PDF 第 106–106 页)
- 解释一下 Elasticsearch Node?(PDF 第 106–106 页)
- Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法(PDF 第 106–106 页)
- 请解释有关 Elasticsearch 的 NRT(PDF 第 106–106 页)
- elasticsearch 的 document 设计(PDF 第 106–106 页)
来源与阅读说明
来源为用户提供的《golang 云原生面试题》PDF 第 1–106 页,各题页码均指原件物理页。原图随正文保留;示例包含历史实现、代码片段及故意设置的错误,阅读时请结合校正说明。第 2 页接口解释引用但未附出的样例不作补写。