面向 MySQL 用户的 PostgreSQL 快速上手指南
序言:它们不只是“语法略有不同”
如果你已经熟悉 MySQL,那么第一次使用 PostgreSQL 时,大部分内容看起来都很亲切:它们都是关系型数据库,都支持事务、索引、约束和 SQL,也都能被主流语言和 ORM 良好支持。
如果你已经熟悉 MySQL,那么第一次使用 PostgreSQL 时,大部分内容看起来都很亲切:它们都是关系型数据库,都支持事务、索引、约束和 SQL,也都能被主流语言和 ORM 良好支持。
数据库中的一行记录发生变化后,影响往往不只停留在数据库内部:
这些场景的下游各不相同,却都依赖同一种能力:持续捕获数据库中的 INSERT、UPDATE 和 DELETE,并可靠地把变化传递出去。这就是 CDC(Change Data Capture,变更数据捕获)。
当机器开始编写机器所执行的代码,程序员面对的就不再只是一次工具升级,而是自身生产方式的重构。
2023 年以后,关于程序员是否会被人工智能取代的讨论迅速升温。最初,AI 只能补全几行代码;随后,它可以生成函数、测试和 SQL;到 2025—2026 年,编程 Agent 已经能够阅读代码仓库、修改多个文件、运行测试并提交 Pull Request。看起来,一条清晰的替代路线正在形成:既然程序员的主要工作是写代码,而 AI 写代码的能力又在持续提升,那么程序员似乎迟早会消失。
打开任何一个技术社区或新闻网站,你可能都会被铺天盖地的 AI 字母缩写轰炸:LLM、RAG、Agent、MCP……对于非从业者来说,这些词就像是外星语言。
在 Kubernetes 集群中,kube-apiserver 是一个至关重要的组件,它不仅要对外响应客户端的 HTTPS 请求,还要对内与 controller-manager、scheduler、kubelet …… 等等其它组件交互。
2024 年 12 月 11 号,OpenAI 的 Kubernetes 集群发生故障,API、ChatGPT、Sora 等服务都受到了影响,且时间长达 4 小时 22 分钟。
关于这次故障,官方有公开复盘,也有很多媒体博主追踪报导。然而,我对此并不满意,本文我将会提出自己的疑惑与追问。
我之前的文章里有分享过自己总结的做技术选型的思考框架,本文将会分享一下我总结的做系统组件调优/优化的思考框架。
常见的互联网架构基本离不开数据库、缓存、消息队列、搜索、数据处理等等各种组件,虽然组件的形态不一、功能不同,但是我仍然把对他们的优化总结归纳为了以下几点:
在使用 Kubernetes 时,可以通过 resources.requests 和 resources.limits 配置资源的请求和限额,例如:
| |
对容器的资源配置会通过 CRI 组件(如 containerd、cri-o 交由更底层的 runc 或 kata-container)去设置 Linux 的 cgroup。
有读者提问:Flannel 与 Calico 的区别。文本将解析一下这两个组件。
Flannel 的架构非常简单,只有两个组件:flanneld 和 flannel-cni-plugin。
在功能特性上,Flannel 有三个部分:
在现代 AI 技术的推动下,声音处理领域取得了巨大进展。从语音识别(ASR)到文本转语音(TTS),再到个性化声音克隆,这些技术已经深入到我们的日常生活中:语音助手、自动字幕生成、语音导航等应用无处不在。