迁移至AWS如何实现无需Lambda的Server to Server托管pub/sub方案
首选方案:使用Amazon ElastiCache for Redis
这是成本最低、完全匹配你需求的方案:
- 属于AWS全托管的Redis服务,无需自行维护Redis集群,AWS负责实例运维、补丁更新、高可用配置
- 100%兼容原生Redis的
pub/sub能力,你现有的生产端、消费端代码不需要做任何改造,仅需要将原有Redis连接地址替换为ElastiCache的实例端点即可 - 完全适配你现有业务逻辑,支持同主题多节点订阅、最多一次投递的要求,不需要额外开发队列管理、端点配置等逻辑,也没有额外的延迟和不必要的成本支出。
备选方案:Amazon MQ for RabbitMQ
你之前对该服务的认知存在偏差:
- Amazon MQ是全托管消息代理服务,不需要你在自有节点部署任何组件,AWS负责整个RabbitMQ集群的全生命周期运维
- RabbitMQ原生支持
fanout类型交换器,完全实现标准Pub/Sub语义,同一条消息发布后会广播给所有订阅的消费节点,仅需要将原有Redis Pub/Sub的逻辑做少量适配即可投入使用。
补充认知纠正
- 你之前调研提到的Amazon MQ不属于需要自有节点部署的服务,同时原生支持Pub/Sub语义,不属于单纯的消息队列。
- SNS、EventBridge确实不支持服务端主动订阅拉取的语义,你的判断无误。
内容的提问来源于stack exchange,提问作者Newbie
相关产品推荐
相关产品推荐

