SuperAPI AI 工具集

message-queues

部署与运维

查看项目

更新于 10-16 03:38

技能介绍

用途:该技能整理分布式系统中的异步通信模式,用于服务解耦、pub/sub 与工作队列、事件驱动微服务、负载削峰与多 worker 任务分发。主要能力:覆盖 Kafka(aiokafka 生产者/消费者、消费组、幂等与 exactly-once、手动提交与 DLQ)、RabbitMQ(aio-pika 交换机、路由、持久化、重试与死信)、Redis Streams(消费组、XACK、at-least-once)、FastStream 统一 API(自动 Pydantic 校验、AsyncAPI),以及用 Postgres LISTEN/NOTIFY 与 FOR UPDATE SKIP LOCKED 的简化队列方案。用法:FastStream 可 pip install faststream[kafka,rabbit,redis],用 faststream run app:app 启动;Kafka 生产者建议 acks=all、enable_idempotence=True,消费者用 enable_auto_commit=False 手动提交;RabbitMQ 用 connect_robust 与 set_qos;Redis 用 xgroup_create、xreadgroup、xack;Postgres 用 pg_notify 与 FOR UPDATE SKIP LOCKED。选型按吞吐与顺序:Kafka 适合高吞吐事件流,RabbitMQ 适合任务队列与复杂路由,Redis Streams 适合实时简单流,Postgres 适合中等量且已在用 Postgres 的场景。限制与注意事项:文中强调禁止未确认即处理、禁止在处理器中使用同步阻塞调用、需要顺序时应设置分区键、避免在消息中存大负载(改用 URL 引用)、异常不能直接忽略需做死信处理,严格投递不应选 Redis Streams,简单任务队列不宜用 Kafka。具体版本、价格与部署细节暂未提供。