SpringBoot + WebSocket 消息 QoS(服务质量):在线推优先,离线存库,确保不丢关键通知
引言:消息丢失的噩梦 公司的订单系统因为网络抖动导致大量关键通知丢失。用户下单后没有收到支付提醒,商家也没有收到新订单通知,最终导致订单超时取消,用户投诉,GMV 损失惨重。 实时消息推送是现代 Web 应用的核心功能,但面临着诸多挑战: 网络不稳定:用户网络波动导致连接断开 客户端离线:用户关闭浏览器或 APP 离线 消息堆积:高峰期消息量过大导致推送延迟 消息丢失:关键通知丢失导致业务异常 QoS(Quality of Service,服务质量) 是解决这些问题的关键。本文将带你深入理解 WebSocket 消息 QoS 机制,并使用 Spring Boot 实现一套完整的消息推送方案。 一、WebSocket 消息 QoS:概念与重要性 1.1 什么是消息 QoS? QoS(Quality of Service) 是指消息传输的服务质量等级,用于保证消息的可靠传输。 类比生活中的例子: QoS 0(最多一次):普通信件,可能丢失 QoS 1(至少一次):挂号信,保证送达但可能重复 QoS 2(恰好一次):快递签收,保证送达且不重复 1.2 MQTT 协议中的 QoS 等....