Swoole / Etcd / Docker / K8s 高频追问
1. Swoole 和 PHP-FPM 本质区别是什么?
推荐回答
不是“快一点”这么简单,而是运行模型变了。 PHP-FPM 是请求来了执行、结束后释放;Swoole 是常驻内存、协程和长连接模型。 所以 Swoole 的价值在于更适合长连接、实时交互和高 IO 并发,但维护复杂度也更高。
2. 什么时候你会考虑 Swoole?
推荐回答
如果场景是:
- WebSocket
- 长连接
- 流式输出
- 高 IO 并发
我会认真考虑 Swoole。 如果只是普通复杂业务后台,我不一定会优先上。
3. Etcd 和 Redis 最大区别是什么?
推荐回答
Redis 更偏高性能缓存和短期状态;Etcd 更偏强一致配置、服务注册发现和分布式协调。 简单说,Redis 强在性能,Etcd 强在一致性和 watch / lease 能力。
4. 为什么 Etcd 适合做服务注册发现?
推荐回答
因为它有:
- 强一致性
- lease 租约
- watch 监听变化
服务启动注册自己、定期续租、异常退出自动过期,客户端还能 watch 服务列表变化,这套机制很适合服务发现。
5. Docker 真正解决什么问题?
推荐回答
最核心的是环境一致性和交付标准化。 它不是为了“用新技术”,而是为了让应用和依赖收敛成统一运行单元,减少“我本地能跑、线上不行”这类问题。
6. K8s 真正解决什么问题?
推荐回答
K8s 真正解决的是多服务容器化之后如何统一管理:
- 部署
- 扩缩容
- 服务发现
- 滚动发布
- 健康检查
- 回滚
Docker 解决单个容器,K8s 解决大量服务实例。
7. 你项目里为什么需要 Docker / K8s?
推荐回答
因为多服务系统如果没有标准化部署和编排,发布、回滚、扩容和排障都会越来越痛苦。 像推广 ROI 线里的 Go 消费者、PHP 后台、报表服务、回传服务,都很适合通过容器和编排统一治理。
8. 你对 K8s 的理解如果不是特别深,怎么答不显弱?
推荐回答
我不是 K8s 平台侧最深的 owner,但我理解它解决的是多服务部署治理问题,包括 Pod、Deployment、Service、Ingress、健康检查、滚动发布和扩缩容。 结合我已有的多服务治理经验,这块上手不会慢。
9. 技术总监问“你有没有实战过 Etcd / K8s”,怎么答?
推荐回答
这类问题我会实话实说。如果不是最深 owner,我会明确说深度边界,但同时把我理解的核心职责、使用场景和系统位置讲清楚。 这样不会显得虚,也不会把自己答弱。
10. 这几块里你最容易转成自己的强项怎么讲?
推荐回答
我不会把自己包装成基础设施平台工程师,但我在复杂业务系统里一直做服务拆分、部署思路、扩缩容意识、链路治理和工程化落地,所以这些组件对我来说不是陌生概念,而是能挂到真实服务方案里的能力。