中间件与异步处理基础
消息队列与搜索#中间件#异步处理基础约 528 字 · 2 分钟阅读
追问显示点击任意追问卡片可收起 / 展开
什么是中间件?消息队列与搜索引擎分别解决什么问题?
追问 为什么不能仅凭“属于中间件”就使用同一套容量、备份和故障处理方案?
消息队列如何实现解耦、异步和削峰?
追问 请求先进入队列后,用户如何知道业务最终成功或失败?
生产者、Broker、消费者分别承担什么职责?
追问 消息发送成功、Broker 接收成功和业务处理成功有什么区别?
至多一次、至少一次和恰好一次分别表示什么?
追问 这些语义的边界是什么?写入外部数据库或调用接口时,为什么仍要考虑重复副作用?
为什么业务使用消息队列后仍可能出现重复消息?
追问 网络超时、重试、确认丢失和消费者崩溃分别如何造成重复?
消费者幂等性如何设计?
追问 业务唯一键、去重记录和事务分别能解决哪些问题,有哪些并发风险?
消息积压一定代表 Broker 性能不足吗?
追问 生产速率、消费速率、处理耗时、下游依赖和消费者数量如何一起分析?
消息顺序性应该如何定义?
追问 全局顺序、业务 Key 内顺序和并发处理完成顺序有什么区别?
异步系统中如何设计失败重试与死信处理?
追问 重试间隔、次数、毒消息、人工介入和重复业务操作如何控制?
部署中间件前,需要和业务团队明确哪些条件?
追问 峰值吞吐、消息大小、保留时间、延迟目标、数据重要性和恢复目标如何确定?