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. 这几块里你最容易转成自己的强项怎么讲?

推荐回答

我不会把自己包装成基础设施平台工程师,但我在复杂业务系统里一直做服务拆分、部署思路、扩缩容意识、链路治理和工程化落地,所以这些组件对我来说不是陌生概念,而是能挂到真实服务方案里的能力。