投稿 @M4n5ter,分享有趣的事!
#面经 #云原生
- 介绍 istio 相关概念
- k8s 的 service,集群用的什么网络插件(calico、flannel)?
- 聊聊云原生是什么?
- 常见的容器运行时
- 数据库是如何部署的(k8s 的 statefulset )
- 介绍 k8s master 的组件
- 容器和虚机的不同点?
- k8s 的源码看过么?
- k8s 创建一个 Pod 的全过程
- client-go Informer 机制全过程?
- Delta-FIFO 和普通队列的区别?Store是什么?Reflector 是什么?
- k8s 官方 sample-controller 和 kubebuilder 生成 controller 有什么区别?
- istio 是做数据面还是控制面?
- Istio 负载均衡的策略
- Service mesh 中南北向和东西向流量处理?
- Prometheus 在项目中的应用
- OpenTelemetry 相关在项目的实践(trace 的协议、打点后上报)
- Promethues 的 metrics 类型(counter、gauge、Histogram、Summary)
- Prometheus在项目中的监控了哪些信息?如何监控?
- 介绍 istio 相关概念
- k8s 的 service,集群用的什么网络插件(calico、flannel)?
- 聊聊云原生是什么?
- 常见的容器运行时
- 数据库是如何部署的(k8s 的 statefulset )
- 介绍 k8s master 的组件
- 容器和虚机的不同点?
- k8s 的源码看过么?
- k8s 创建一个 Pod 的全过程
- client-go Informer 机制全过程?
- Delta-FIFO 和普通队列的区别?Store是什么?Reflector 是什么?
- k8s 官方 sample-controller 和 kubebuilder 生成 controller 有什么区别?
- istio 是做数据面还是控制面?
- Istio 负载均衡的策略
- Service mesh 中南北向和东西向流量处理?
- Prometheus 在项目中的应用
- OpenTelemetry 相关在项目的实践(trace 的协议、打点后上报)
- Promethues 的 metrics 类型(counter、gauge、Histogram、Summary)
- Prometheus在项目中的监控了哪些信息?如何监控?
#面经 #数据库 #MySQL #Redis #MongoDB #Mongo
- MySQL 的事务隔离级别,可重复读是什么样的概念?原则?
- MySQL 的慢查询是怎么解决的?
- Redis 遍历 key 的命令,可否用 keys 命令?
- MySQL 的优化?
- MongoDB 和 MySQL 的区别,MongoDB 的索引了解过么?
- Redis 的数据类型?
- Redis 持久化的方式
- MySQL 的索引,聚簇索引和非聚簇索引的区别?索引是用什么实现的(b+ tree)?
- MySQL 事务隔离级别(RU/RC/RR/S),可重复读是怎么实现的?幻读是怎么解决的?
- Redis ZSet 底层是怎么实现的(压缩链表、跳表)
- Redis 的持久化机制?RDB 的原理(save、bgsave)?
- MySQL 的事务隔离级别,可重复读是什么样的概念?原则?
- MySQL 的慢查询是怎么解决的?
- Redis 遍历 key 的命令,可否用 keys 命令?
- MySQL 的优化?
- MongoDB 和 MySQL 的区别,MongoDB 的索引了解过么?
- Redis 的数据类型?
- Redis 持久化的方式
- MySQL 的索引,聚簇索引和非聚簇索引的区别?索引是用什么实现的(b+ tree)?
- MySQL 事务隔离级别(RU/RC/RR/S),可重复读是怎么实现的?幻读是怎么解决的?
- Redis ZSet 底层是怎么实现的(压缩链表、跳表)
- Redis 的持久化机制?RDB 的原理(save、bgsave)?
#面经 #GO
- Go 的垃圾回收机制?GMP 模型?
- Go 如何优雅关闭一个 channel ?
- Go 里面的 map 是怎么解决 hash 冲突的?
- slice 是引用传递还是值传递?slice 参数传递过去,修改之后,外部变量是否也会被修改?
- Go 读写锁的概念?读的时候会影响别人的读么?读优先还是写优先?
- context 的应用场景?
- select 的作用?项目中怎么使用的?
- 数组和切片的区别?
- map 是否是线程安全的,如何在 Go 中使用线程安全的 map ?
- sync.map 的原理
- Go 数据类型有哪些?
- 如何判断两个 interface{} / any 相等?
- Go map中删除一个 key 的内存是否会立即释放?
- init() 方法的特性
- switch-case语句,强制执行下一个case
- encoding/json 包解码通过 HTTP 请求接收的 JSON 数据时,它会默认将所有数字解析为 float64 类型
- Go 里面的类型断言?
- Go 静态类型声明?
- sync 包使用?
- CSP 并发模型
- 逃逸分析的介绍?逃逸分析怎么看(-gcflags = "-m -l")?工作中是否用过逃逸分析解决问题?
- 对关闭的 channel 进行读写 channel 会发生什么?对关闭的 channel 写为什么会 panic ?
- 字符串转 byte 数组会发生内存拷贝么?为什么?
- 如何实现字符串转切片无内存拷贝(unsafe)?
- Go 语言 channel 的特性?channel 阻塞信息是怎么处理的? channel 底层实现?
- Go 中 sysmon 有什么作用?
- GMP 中 work stealing 机制
- GMP 中 hand off 机制
- GMP 调度过程中存在哪些阻塞?
- Go 的垃圾回收机制?GMP 模型?
- Go 如何优雅关闭一个 channel ?
- Go 里面的 map 是怎么解决 hash 冲突的?
- slice 是引用传递还是值传递?slice 参数传递过去,修改之后,外部变量是否也会被修改?
- Go 读写锁的概念?读的时候会影响别人的读么?读优先还是写优先?
- context 的应用场景?
- select 的作用?项目中怎么使用的?
- 数组和切片的区别?
- map 是否是线程安全的,如何在 Go 中使用线程安全的 map ?
- sync.map 的原理
- Go 数据类型有哪些?
- 如何判断两个 interface{} / any 相等?
- Go map中删除一个 key 的内存是否会立即释放?
- init() 方法的特性
- switch-case语句,强制执行下一个case
- encoding/json 包解码通过 HTTP 请求接收的 JSON 数据时,它会默认将所有数字解析为 float64 类型
- Go 里面的类型断言?
- Go 静态类型声明?
- sync 包使用?
- CSP 并发模型
- 逃逸分析的介绍?逃逸分析怎么看(-gcflags = "-m -l")?工作中是否用过逃逸分析解决问题?
- 对关闭的 channel 进行读写 channel 会发生什么?对关闭的 channel 写为什么会 panic ?
- 字符串转 byte 数组会发生内存拷贝么?为什么?
- 如何实现字符串转切片无内存拷贝(unsafe)?
- Go 语言 channel 的特性?channel 阻塞信息是怎么处理的? channel 底层实现?
- Go 中 sysmon 有什么作用?
- GMP 中 work stealing 机制
- GMP 中 hand off 机制
- GMP 调度过程中存在哪些阻塞?