Pub/Sub能解决什么问题
在构建微服务或分布式系统时,服务间通信和数据同步往往让人头疼。传统点对点连接会导致耦合过紧,一旦某个下游故障,上游就会卡住。 Pub/Sub作为全托管的消息中间件,提供了持久化的异步发布订阅模型。生产者只管发消息到主题,消费者按需拉取,双方互不阻塞。这样一来,系统解耦了,峰值流量也能平稳消化。
Pub/Sub怎么收费
很多团队关心成本,其实Pub/Sub的计费很透明。主要分为两部分:消息吞吐量费用和数据留存费用。每月前10GB的消息数据免费,超出后按量计费,价格大约每GB 0.04美元。另外,如果你开启了死信队列或跨区域复制,会额外产生少量网络费。对比自建Kafka集群的机器运维成本,全托管服务往往更划算,尤其适合不想折腾基础设施的小团队。
Pub/Sub和Kafka对比
选型时最常被问到:Pub/Sub比Kafka好在哪?Kafka强在顺序写入和高吞吐,但需要自己管理分区、副本和消费者偏移量。Pub/Sub则完全托管,你只需关心主题和订阅。它还默认提供至少一次交付,并通过死信队列处理失败消息。如果你们团队没有专门的中间件运维人员,或者业务对延迟不敏感但对稳定性要求高,Pub/Sub会省心很多。
如何快速上手 Pub/Sub
从零开始用Pub/Sub很简单:在GCP控制台创建主题,再为每个消费者创建订阅。拉取模式用SDK(支持Java、、Go等)就能写几行代码收消息。建议先跑通官方快速入门示例,把推送模式和拉取模式都试一遍。注意设置好订阅的确认截止时间和消息保留期限,默认7天。生产环境别忘了配置监控告警,通过Cloud 查看未确认消息堆积量。
读完这篇文章,你在实际项目里更愿意使用 Pub/Sub还是自建消息队列?欢迎在评论区分享你的选型经验,点个赞让更多开发者看到~

