正在打开每日关注
正在打开每日关注
开发者基于 pgrx 用 Rust 实现 Kafka 协议并嵌入 Postgres,Kafka 客户端直连 9092 端口无感知使用。
Someone rewrote Kafka in Rust and embedded it in Postgres using pgrx 🤯 Kafgres is a Rust-based Kafka broker that runs within Postgres. Kafka clients connect to Postgres on port 9092 and literally can't tell the difference. 🧵 https://t.co/tjzyGCNy3S
是什么 Kafgres 是一个用 Rust 编写、通过 pgrx 嵌入 Postgres 的 Kafka Broker。它实现了 Kafka 的线路协议,Kafka 客户端直接连到 Postgres 的 9092 端口即可工作,完全感知不到后端其实是数据库。推文作者 Stanislav Kozlovski 是 Kafka 社区的知名贡献者,他的转发带有明显的惊叹与认可。
核心设计 关键在于协议兼容而非客户端适配:不是给 Postgres 包一层代理,而是在数据库进程内部实现完整的 Kafka Broker 语义。借助 pgrx,Rust 代码以扩展形式运行在 Postgres 内,消息的存储、事务与复制能力天然复用数据库已有的机制,形成「数据库即消息队列」的一体化架构。
关键洞察 一是生态杠杆:兼容 Kafka 协议意味着现有客户端、SDK 和工具链零成本接入,这是此类项目能否被采用的决定性设计。二是架构收敛:对低吞吐、小规模场景,把事件流能力折叠进已有的 Postgres,可以省掉一套独立 Kafka 集群的部署与运维,属于基础设施的「够用就好」路线。
边界与风险 Postgres 并非为高吞吐消息流设计,磁盘 I/O、WAL 膨胀和连接模型都可能成为瓶颈;Kafka 的分区再均衡、消费组语义等细节能否完整还原也有待验证。它更适合开发测试、嵌入式场景或中小规模事件流,不应贸然替代生产级 Kafka 集群。