最新文章

2026年3月26日

Agent 语音交互如何更稳、更快?一次高并发消息链路优化实践
随着大语言模型(LLM)、语音识别(ASR)、语音合成(TTS)等能力逐步成熟,AI Agent 开始从文本交互走向语音交互,典型场景包括 AI 教师、AI 情感聊天、AI 助手等。相比文本输入,语音更自然、更实时,用户可以直接通过说话完成提问、练习、任务触发与多轮对话,这也让“和 Agent 用语音对话”真正进入实际业务场景。 但当 Agent 语音交互进入高并发场景后,很多团队会发现:最先遇到瓶颈的,往往不是模型本身,而是支撑实时交互的消息链路。海量会话管理、高频小包传输、异步结果回推、会话生命周期管理等问题会随之集中出现。要让和 Agent 语音交互真正做到更稳、更快,底层链路设计往往才是关键。 本文结合一个典型的高并发智能语音交互场景,介绍如何基于阿里云 RocketMQ LiteTopic 构建一套更稳定、更可靠、更高效的实时语音消息链路架构。 高并发 Agent 语音交互对技术架构提出哪些关键要求? 在 Agent 语音交互场景中,系统并不只是“接收一句话、返回一句话”这么简单。一次完整交互背后,往往涉及客户端、网关、业务处理系统,以及 LLM、ASR、TTS 等多个服务之间的协同。 因此,智能语音交互业务会对技术架构提出更高要求: + 海量会话管理:随着业务规模增长,并发连接数和活跃会话数会迅速上升。每个用户的语音交互都是一个独立会话(Session),系统需要同时维持数万甚至数十万个长连接。 + 高频小包传输:用户按下录音键到松开,形成一个独立会话(Session)。在此期间,客户端会将音频流切片成小包持续传输,需要保证语音包连续、不丢失,避免影响业务正确性。 + 严苛的时效性:客户端对延迟极度敏感,若较长时间内未收到响应,用户体验会明显下降。这对 LLM 在高并发场景下的吞吐能力,以及系统的实时响应通知能力,都提出了更高要求。 正因如此,很多系统在低并发时看起来“可以跑通”,但一旦进入高并发实时语音场景,底层消息架构中的问题就会被迅速放大。 传统消息架构在实时语音场景下面临哪些核心挑战? 在智能语音交互业务的实际落地过程中,传统消息架构在支撑高并发、低延迟的实时语音场景时,往往会暴露出几类典型问题。 ▍1. 全链路 Session Sticky 的精准路由 语音交互的消息流转路径通常贯穿:APP Gateway BizProcessSystem (Route) LLM/ASR/TTS。其中,APP与 Gateway、BizProcessSystem与 LLM之间均维持着 WebSocket 长连接。 在这种架构下,整个链路必须严格保持会话粘滞(Session Sticky)。也就是说,某个用户的上行音频流和下行反馈结果,必须精准路由到其当前连接的特定网关节点,以及对应的后端处理实例。 问题在于,在分布式环境下,维护“Session ID 到物理节点 IP”的动态映射表本身就非常复杂。一旦网关节点扩容、重启,或者发生网络波动,路由表同步延迟极易导致消息被投递到错误节点,进而造成连接断裂、数据丢失,破坏交互连续性。 ▍2. 大模型异步结果的实时、精准回推 大模型(LLM)的推理过程通常耗时较长且波动明显(秒级甚至分钟级)。若采用同步等待模式,会长时间占用网关和业务线程,导致系统吞吐量急剧下降,甚至引发资源耗尽的雪崩效应。 因此,为了提升吞吐,LLM 调用通常需要改造成异步处理。但异步之后,新的难点也随之出现:最终计算结果(如 ASR 文本、TTS 音频)如何实时、准确地回推给发起请求的那个用户连接? 如果依赖复杂的回调轮询或状态查询,不仅实现复杂,还会进一步增加延迟和维护成本。这也是语音交互架构设计中的核心难点之一。 ▍3. 海量临时通道带来的元数据爆炸 从业务逻辑上看,为每个独立语音会话(Session)建立隔离的通信通道,是避免数据串扰的理想方案。 但如果为每个 Session 都创建一个标准 RocketMQ Topic,就会带来明显的元数据(Metadata)爆炸问题。海量临时 Topic 会严重消耗 NameServer 和 Broker 的内存与 CPU 资源,导致集群性能急剧下降,甚至影响可用性。 此前,一些场景会采用广播消息的方案来规避这一问题。虽然实现简单,但也存在两个明显缺陷: + 消息会在所有节点重复投递和过滤,造成大量无效流量与计算资源浪费。 + 所有节点都需要处理全量消息,单节点处理能力容易成为整体容量上限,系统水平扩展受限。 因此,广播模式很难支撑持续增长的高并发语音业务。 ▍4. 会话生命周期的自动化管理缺失 语音会话通常具有很强的临时性,并不是永久存在的资源。它的生命周期可能只是一次几分钟的对话,也可能仅存在于一个业务周期之内。 但在传统架构下,会话结束后的路由记录、缓存状态、临时通道等资源,往往需要依赖定时任务扫描或手动清理。这会带来两个典型问题: + 清理不及时:无效资源长期堆积,占用系统内存和计算资源。 + 清理过早:可能切断仍在进行中的合法交互。 因此,系统需要一种真正适合临时会话场景的机制,能够实现通道的自动创建、自动过期和自动销毁。 基于 RocketMQ LiteTopic 的消息链路重构 针对上述问题,可以基于阿里云云消息队列 RocketMQ 的轻量主题(LiteTopic)模型,构建一套更适合高并发智能语音交互场景的消息中间件架构。 LiteTopic 支持动态创建海量轻量主题,天然具备会话隔离能力,并内置 TTL 自动清理机制。这些特性与 Agent 语音交互场景对“高并发、低延迟、强隔离、易回收”的要求高度契合。 ▍1. RocketMQ LiteTopic 方案设计 1.1 请求保序与响应隔离的核心架构 + 请求侧:分片音频包采用分区顺序 Topic 上传 同一个会话的语音包用 SessionID 作为分区顺序的 Key,发送到分区顺序 Topic 中,相同 Key 的消息会按照发送顺序投递给业务处理系统,从而保证同一会话内消息处理有序。 + 响应侧:模型结果通过 LiteTopic 异步通知 为每个会话创建一个 LiteTopic:直接使用 SessionID 作为 LiteTopic 名称。每个语音会话拥有独立的消息通道,天然实现消息隔离。 每个节点订阅不同的 LiteTopic 集合:应用服务端节点作为 Consumer,只订阅与当前节点相关会话的 LiteTopic 集合,确保消息“点对点”精准投递,无需维护复杂路由表。 节点动态订阅 LiteTopic:会话断连后,可以动态删除对应 SessionID 的 LiteTopic 订阅;新会话建立时,可以动态新增对应 SessionID 的 LiteTopic 订阅。当网络异常或者服务节点重启时,也可以利用动态订阅能力续订 LiteTopic 消息,从而保障会话内容连续性。 LiteTopic 自动创建:LiteTopic 无需预先创建。当生产者发送消息时,如果发现 LiteTopic 不存在,会自动创建,且不影响消息发送耗时。 配置合适的 TTL 时间:当 LiteTopic 距离最近一次消息写入超过设定时长后,会被自动删除。可结合实际业务特点,设置合适的 TTL 时长。 1.2 面向运维和问题定位的可观测性 RocketMQ LiteTopic 基于云监控建立了全方位、细粒度的监控、告警与排查体系: + 智能告警:配置 LiteTopic 的消息堆积量阈值。一旦某会话链路延迟超过预期,立即触发告警。 + 快速定位:收到告警后,运维人员可直接在控制台 Group 详情页查看堆积量最高的 LiteTopic 列表及对应的消费者 IP。借助这种细粒度透视能力,原本大海捞针般的故障定位变成了分钟级的精准修复。 ▍2. RocketMQ LiteTopic 方案优势 基于 RocketMQ LiteTopic 的轻量化、灵活订阅、自动创建及 TTL 自动删除等原生特性,这套方案在架构层面主要具备以下三方面优势: 2.1 保障长耗时会话的极致连续性 借助 LiteTopic 的自动创建、“一会话一通道”和动态订阅机制,系统可以为每个语音会话建立独立的响应通道。无论 LLM 推理耗时多久,消息都能在专属通道中有序流转,避免多会话间的消息串扰。 同时,即使后端服务发生扩缩容或网络波动,响应消息仍能回到用户当前连接的网关节点,保证长链路交互中的 Session Sticky 和会话连续性。 此外,通过 LiteTopic 的异步通知机制,系统可以避免长耗时线程阻塞,进一步提升整体吞吐能力,让用户在高峰期也能获得流畅的语音交互体验。 2.2 推动应用架构进一步无状态化 在传统方案中,应用通常需要维护“Session ID 到 Node IP”的路由映射,以及配套的心跳保活和异常清理逻辑,状态管理复杂、维护成本高。 引入 LiteTopic 后,路由逻辑下沉到消息中间件层,业务代码只需围绕 SessionID 发送和接收消息。应用节点因此更接近无状态计算单元,不再强依赖本地连接状态表。这样不仅能够降低状态管理复杂度,也让应用更容易进行弹性伸缩和故障恢复,从而提升整体可维护性与容灾能力。 2.3 降低无效调用带来的模型成本 在传统架构中,消息错投或超时导致的“无响应”往往会触发客户端重试,导致同一段音频被重复发送给 LLM 推理,带来额外的 Token 消耗。 通过更精准的会话路由和可靠的投递机制,这套方案能够更好地保障“一次请求,必达响应”,显著减少因链路问题导致的重复调用,从而直接降低 LLM 的无效 Token 成本。 消息链路优化后带来的业务价值 从业务效果来看,引入 RocketMQ LiteTopic 之后,高并发智能语音交互链路通常可以在以下几个方面获得明显提升: + 用户体验更稳定:可以显著减少因连接状态不一致导致的“无响应”问题,提升语音交互成功率。即使在网络波动场景下,也能更好保障无感知重连,确保交互连续性。 + 系统复杂度更低:不再需要维护复杂的自定义路由表和状态同步逻辑,而是借助 LiteTopic 的原生能力完成会话管理,整体架构更简单,也更易扩展。 + 运维定位更高效:借助细粒度监控与告警,潜在性能瓶颈可以在影响用户前被发现和处理,问题定位与修复效率明显提升。 + 资源成本更可控:借助云消息队列 RocketMQ 版的弹性能力,业务可以按量付费,无需提前预留峰值容量,同时减少重复调用带来的额外模型消耗。 + 业务扩展更从容:更轻量、可扩展的链路设计,也为后续拓展更多实时互动场景打下基础,能够更从容地应对流量增长。 结语 很多团队在构建 Agent 时,往往会优先关注模型能力、推理效果和成本控制。但在高并发实时语音场景中,想把这些能力稳定地交付给用户,消息链路的稳定性、精准性和可扩展性同样不可忽视。 基于 RocketMQ LiteTopic 的这套方案,本质上解决的是几个关键问题: + 海量会话如何隔离。 + 长链路如何保持 Session Sticky。 + 异步结果如何精准回推。 + 临时通道如何自动管理。 + 系统如何在高并发下保持可观测与可扩展。 RocketMQ LiteTopic 提供了一种更适合高并发实时交互场景的消息架构思路。对于正在推进 Agent、实时互动、大模型应用工程化落地的团队来说,尤其是需要支撑海量动态会话、低延迟响应和灵活扩展的业务,这类能力正在从“加分项”逐步变成“必选项”。 欢迎钉钉搜索_(__群号:__110085036316)_或扫码加入 RocketMQ for AI 用户交流群,与我们交流探讨。

2026年3月16日

AI 推理精细化流量治理实战:RocketMQ LiteTopic 的“千人千面”流控方案
引言 随着大模型推理服务成为主流,消息队列在 AI 场景下的精细化流量治理,正面临前所未有的挑战。 传统互联网应用的业务流程固定、请求耗时短,消息队列的限流机制已相对成熟。然而,在 AI 推理场景下,业务流程高度动态、单次任务可持续数分钟甚至更久。这让传统方法显得力不从心,并引发两大核心痛点: + 队列头部阻塞:单个用户的慢任务,会阻塞队列中其他用户的消息处理。 + 并发效率受损:简单粗暴的限流措施,会导致整个系统吞吐量急剧下降。 为解决这些问题,Apache RocketMQ 5.x 版本推出了专为 AI 场景设计的核心特性——轻量主题模型 LiteTopic。它支持百万级轻量主题的创建和高性能动态订阅。基于 LiteTopic 的精细化流量治理方案,既能实现毫秒级的实时限流,又能支持分钟级的忙闲调度,真正做到了“千人千面”的个性化流量治理。 AI 推理场景下的消息队列新挑战 AI 应用与传统互联网应用存在本质差异,在于其执行模式和任务耗时。传统应用流程固定可预测、耗时短(秒级)、多为单向一次性交互;AI 应用更偏主动执行,会自主拆解目标并动态调整策略,流程不确定,单次任务耗时长(分钟级且不可预测),还常伴随多轮对话交互。 这种差异,导致消息队列在 AI 推理场景下面临两大严峻挑战: 1. 队列头部阻塞 传统业务中,不同用户的请求耗时较均衡(通常为秒级),即便多租户共享队列,也不会长期占用队列头部,阻塞问题不明显。因此,只需设置几个队列即可满足需求。 但在 AI 推理场景下,不同用户的请求耗时差异巨大(几秒到几十分钟不等且不可预测)。多租户共享队列时,一条长耗时消息(如复杂推理任务)占据队列头部,会阻塞后续所有消息的处理,导致同队列其他用户的正常消息无法被及时处理。若某个用户密集提交慢任务,可能长期抢占全部队列头部位置,形成资源独占,导致其他用户延迟飙升,破坏系统公平性。 2. 并发效率受损 在 AI 推理场景中,当某个用户短时间内密集提交大量推理请求时,系统需要对该用户实施流量控制。然而,传统的限流措施(如 Thread.sleep())会阻塞消费者线程,这会导致一个严重的问题: 即使队列中还有其他健康用户的消息等待处理,但由于所有消费线程都在处理限流用户的请求而被阻塞,这些健康用户的正常消息也无法得到处理。随着被限流的用户增多,大量线程陷入阻塞状态,整个系统的并发处理能力将急剧下降。 传统方案为何在 AI 推理场景中失效? 面对 AI 推理场景的流量洪峰,业界通常采用两种“老套路”来限流,但都“治标不治本”。 ▍方案一:消费失败重试法 简单粗暴地让消息失败,并自动重回队列排队。这听起来似乎很取巧,实则埋下了“定时炸弹”: + 重试机制不可控:依赖中间件内置重试机制,缺乏时间精度控制,易造成延迟放大; + 服务质量不稳定:无法保证时效性,消息可能在队列里躺上好几轮才被处理,影响业务 SLA; + 资源浪费严重:失败重试会消耗额外的网络、磁盘和 CPU 资源,增加系统整体负载,降低系统稳定性。 ▍方案二:线程阻塞限流法 当检测到某个用户短时间内请求频率过高或资源消耗过大时,通过Thread.sleep()等同步阻塞 API 暂停消息处理线程,直接让处理线程“睡一会儿”。这看似控制住了消息处理频率,实则是在“饮鸩止渴”: + 资源利用率低:大量线程被无效阻塞,不仅占用内存,还增加调度开销,导致并发能力下降,长期运行有资源耗尽风险; + 租户隔离失效:在共享线程池中,对某个队列的限流会波及由同一线程处理的其他队列,从而破坏多用户间的隔离性; + 吞吐量受损:阻塞机制与高性能设计的初衷背道而驰,严重损害了系统整体的消息处理能力。 这两种传统方法,要么过度依赖中间件机制,要么牺牲系统性能,都无法从根本上解决多租户环境下的精细化流量控制难题。 RocketMQ LiteTopic 流量治理:千人千面,优雅调度 ▍1. 毫秒级实时限流:让每个用户都有“专属 VIP 通道” AI 推理请求可能在毫秒级内剧烈波动,需要毫秒级的精细化限流能力来应对瞬时流量洪峰。 RocketMQ 基于 LiteTopic 打造了一套精细化限流方案,通过构建完整的资源隔离与调度体系来实现高效的流量治理: + 物理隔离:为每个用户/会话创建独立 LiteTopic,从物理层面实现用户级资源隔离,彻底消除交叉干扰。 + 弹性扩容:LiteTopic 支持百万级规模的按需创建,无论是小批量测试还是大规模生产,都能从容应对。 + 精准流控:每个 LiteTopic 可独立执行限流策略,支持按用户配置差异化阈值,真正实现“千人千面”的个性化流量治理。 + 消费挂起:当检测到用户请求超限时,不是简单地拒绝(失败重试)或等待(阻塞线程),而是优雅地“请用户稍等片刻”(挂起),既保护了系统资源,又不影响用户体验。 在实际应用中,流量处理流程如下图所示: 1. 消息分流:上游业务消息根据用户标识(如 userId)分流到每个独立用户对应的专属 LiteTopic,实现物理隔离。 2. 并行拉取:消费者通过长轮询并行拉取各 LiteTopic 的消息,在限流窗口中对每个 LiteTopic 独立执行限流判断。 3. 限流判断: 未超限:当某用户请求未触发阈值时,正常消费并输出流量; 已超限:当检测到请求超限时,返回 Suspend 挂起状态。 4. 消费挂起:该 LiteTopic 立即挂起,消费者释放处理线程并暂停服务端对该用户的拉取,支持毫秒级精确控制挂起时长,确保限流策略的灵活性和响应速度。 5. 线程复用:释放的线程即时转交其他用户请求,实现资源的弹性调度与高效复用。 6. 自动恢复:挂起的 LiteTopic 将在指定时间后自动恢复消费。 以下消费代码示例展示了如何在实际业务中实现这套机制: ```plain LitePushConsumer litePushConsumer = PROVIDER.newLitePushConsumerBuilder() .setClientConfiguration(clientConfiguration) .bindTopic(TOPIC) .setConsumerGroup(GROUP) .setMessageListener(messageView { //【物理隔离】以userId作为liteTopic名称,实现用户级物理隔离 // 每个用户独享一个独立的物理队列,确保资源完全独立,避免相互干扰 String userId = messageView.getLiteTopic(); //【精准流控】根据业务规则判断是否需要触发限流 // 支持按用户配置差异化阈值,实现"千人千面"的个性化流量治理 if (shouldThrottle(userId)) { //【消费挂起】返回suspend,立即释放当前处理线程 // 服务端暂停对该用户的拉取,避免无效资源消耗 // 支持毫秒级精确控制,100ms后自动重投递,释放的线程可被重新分配给其他用户请求 return ConsumeResultSuspend.of(Duration.ofMillis(100)); } // 正常处理消息 processMessage(messageView); return ConsumeResult.SUCCESS; }) .build(); ``` 上述代码的核心是引入了“消费挂起”机制。 与传统消息队列仅支持“消费成功”与“消费失败”两种状态不同,这里新增了第三种消费状态——Suspend,实现了精准的时间窗口控制: + 状态扩展:消费者返回 ConsumeResultSuspend 状态时,可携带下次可见时间戳,指定消息在时间窗口内的不可见期; + 资源释放:系统立即释放处理线程,清理该队列的本地缓存,避免资源占用; + 自动恢复:服务端维护定时调度器,到达指定时间后自动唤醒队列,重新参与拉取消费。 这一机制让瞬时限流不再阻塞线程,既保护了系统资源,又确保了其他用户请求的正常处理,完美契合 AI 推理场景下的实时流量治理需求。 ▍2. 分钟级忙闲调度:让延迟任务“错峰出行” 除了毫秒级的瞬时流量控制,RocketMQ LiteTopic 的消费挂起机制同样适用于分钟级甚至小时级的长时间窗口调度,实现延迟不敏感任务的错峰调度。 在实际业务场景中,可能存在大量延迟不敏感的任务,如: + 跑批任务:数据统计、报表生成等批量处理作业; + 异步处理:非核心链路的异步通知、日志分析等; + 资源消耗型任务:模型训练、离线推理等计算密集型操作。 这类任务无需实时处理,但可能占用大量计算资源。通过消费挂起机制,我们可以将这些任务智能调度到业务空闲时段执行: 1. 长时间窗口挂起:设置秒级甚至分钟级的挂起时长(如 Duration.ofMinutes(30)),将任务延迟到低峰期处理; 2. 动态感知业务负载:实时监控系统负载,当检测到资源紧张时,主动挂起低优先级任务的消费; 3. 轻量级任务调度:在无需引入额外调度系统的情况下,通过消息队列本身实现任务的延迟执行和资源错峰,降低系统复杂度。 ```plain LitePushConsumer litePushConsumer = PROVIDER.newLitePushConsumerBuilder() .setClientConfiguration(clientConfiguration) .bindTopic(TOPIC) .setConsumerGroup(GROUP) .setMessageListener(messageView { String taskType = messageView.getUserProperty("taskType"); //【忙闲调度】识别延迟不敏感任务 if ("BATCH".equals(taskType) || "LOW_PRIORITY".equals(taskType)) { // 检测系统是否处于繁忙状态 if (isSystemBusy()) { //【长时间挂起】将任务延后到空闲时段处理 // 挂起30分钟后自动恢复,实现错峰调度 return ConsumeResultSuspend.of(Duration.ofMinutes(30)); } } // 正常处理消息 processMessage(messageView); return ConsumeResult.SUCCESS; }) .build(); ``` 这种忙闲调度能力,让 RocketMQ LiteTopic 在消息队列的基础上,扩展了延迟任务处理能力。无需引入额外的调度组件,即可在保障核心业务 SLA 的同时,最大化系统资源利用率。 RocketMQ LiteTopic 技术揭秘:如何实现百万级物理隔离? LiteTopic 是 Apache RocketMQ 专为 AI 场景设计的轻量主题模型,具备轻量资源、自动化生命周期管理、高性能订阅和顺序性保障等特点。 其底层基于创新的存储架构和分发机制,支撑了百万级 LiteTopic 的高效管理,在不牺牲性能的前提下,实现了海量 LiteTopic 资源的物理隔离,为 AI 场景下的精细化流量治理提供了坚实的技术基础。 关键技术点包括: + 统一存储、多路分发:所有消息数据统一存储在底层 CommitLog 文件中且仅存储一份,采用追加写入模式避免磁盘碎片化,保障极致写入性能。同时,通过多路分发机制为不同 LiteTopic 生成独立的消费索引。 + RocksDB KV 存储引擎:摒弃传统文件型 CQ 结构,替换为高性能的 KV 存储引擎 RocksDB,将队列索引信息和消息物理偏移量作为键值对存储,充分发挥 RocksDB 顺序写入的高性能优势,实现对百万级元数据的高效管理。 + 订阅关系管理:Broker 负责管理消费者的订阅关系集,支持增量更新,能够实时、主动地感知消息与订阅的匹配状态。 + 事件驱动与就绪集维护:每当新消息写入时立即触发订阅匹配,将符合条件的消息聚合到就绪集中。 + 高效批量拉取:消费者只需一次 poll 请求即可批量拉取来自多个 LiteTopic 的消息,显著降低网络交互频率,确保在海量订阅场景下的低延迟与高吞吐。 _百万级 LiteTopic 高并发性能的发送和消费流程_ 结语 随着 AI 推理日益普及,传统消息队列限流方式已难以满足精细化流量控制需求。 基于 RocketMQ LiteTopic 的精细化流量治理方案,通过物理隔离、弹性扩容、精准流控和消费挂起四大核心特性,系统性解决了队列头部阻塞和并发效率受损两大痛点,为 AI 推理场景提供了从毫秒级实时限流到分钟级忙闲调度的全方位消息处理保障,实现了真正意义上的“千人千面”个性化流量治理。 值得一提的是,该方案已与阿里云大模型服务平台百炼网关达成深度合作,利用 RocketMQ LiteTopic 的精细化流控能力,帮助其更好地管理 AI 推理请求的流量峰值与资源调度。 目前,LiteTopic 的核心能力已在阿里云云消息队列 RocketMQ 版 5.x 系列实例中发布,若要在实际业务中使用,请点击下方阅读原文链接查看帮助文档。 未来,我们将继续探索更多创新技术,推动消息队列在 AI 时代的演进与发展。 欢迎钉钉搜索_(群号:110085036316)_或扫码加入 RocketMQ for AI 用户交流群,与我们交流探讨~

2026年3月9日

长城汽车加速转型发展,消息总线升级护航业务
在智能汽车产业快速发展的背景下,车联网服务(TSP)已成为主机厂从“硬件制造”向“数据驱动服务”转型的关键引擎。长城汽车_(__https://www.gwm.com.cn__)_正加速从传统汽车制造商向“全球化智能科技公司”转型,以智能网联技术为核心,构建覆盖研发、生产、服务全链条的数字化生态。其云平台战略聚焦“软件定义汽车”,通过云原生技术、分布式架构与数据驱动能力,打造“车路云一体化”的智能出行解决方案。 消息总线作为云平台核心基础设施,承载跨业务异步集成与事件驱动,是支撑复杂业务流程自动化与实时数据交换的关键。随着业务规模与接入系统持续增长,长城汽车对消息总线提出更高的稳定性、可用性与扩展性要求。同时,在业务全球化与合规要求趋严的背景下,多云架构可增强运营韧性,实现资源优化与灵活调度,避免单点故障影响关键业务流程,保障业务连续性与体验一致性。 基于上述诉求,长城汽车对消息总线进行全面升级,核心目标是构建跨云双活能力:在故障场景下快速切换并保持业务连续,同时提升高并发接入下的稳定性与运维效率。本次升级引入阿里云云消息队列 RocketMQ 版的 Global Replicator,实现多云之间消息秒级同步,并结合 Serverless 弹性伸缩进一步增强系统可靠性,为全球车主“永远在线”的智能服务提供更稳固的消息底座。 长城汽车消息总线的核心特点 长城汽车消息总线的设计目标,是构建“消息、事件一体”、“中心、边缘一体”的事件总线平台,核心特点包括: 1. 标准化接入协议(HTTP):采⽤ HTTP 协议作为统一接入协议,构建标准化的消息⼊⼝和出⼝接⼊点,降低系统接⼊门槛,便于精细化流量管理与控制。 2. 稳定可靠的消息存储组件:选用 Apache RocketMQ 作为消息存储组件,凭借其稳定可靠、高性能与功能丰富等优势,充分满足企业级消息服务需求。 3. 支持高级消息特性:支持顺序消息(按特定顺序消费)与定时/延时消息(按指定时间投递)等能力,满足时间敏感、流程复杂场景的精确控制需求。 4. 集成长城集团云平台周边系统:打通主题创建、消费组配置、权限分配等资源管理与现有工单系统,实现从请求提交到资源分配的全流程⾃动化;对接钉钉通知实现业务通知与告警;对接服务治理平台实现全链路灰度。 5. 跨云高可用部署架构:⽀持跨多云环境双活/多活部署,确保单数据中⼼故障时可⽆缝切换⾄备⽤节点继续运⾏,并通过一致性机制保障业务连续性与数据完整性。 构建跨云双活架构的关键挑战 作为云平台消息中枢,消息总线支撑跨业务实时数据流转,其可靠性直接影响业务连续性和用户体验。为满足核心业务的高可用诉求,跨公有云双活成为关键目标,但在设计与落地过程中主要面临以下挑战: ▍1. 跨云传输实时性与业务容限的权衡 + 网络延迟叠加:跨公有云通常依赖公网传输,端到端延迟显著增加;叠加多云环境下的跨地域距离与同步协议开销,总延迟可能突破业务容忍阈值。 + 一致性代价:为保障双活集群数据强一致性,需引入额外的同步机制,会进一步加剧延迟。 ▍2. 混合云环境的兼容性与安全性挑战 + 版本与协议兼容性:现有自建 RocketMQ 4.x 集群存在深度定制,引入云上托管 RocketMQ 5.x 服务以降低运维复杂度,需要兼容开源 Apache RocketMQ 4.x 和云上托管服务 RocketMQ 版本。 + 多云安全隔离:跨云消息同步链路需加密传输与访问鉴权(如基于 VPC 对等连接的流量隔离)。 ▍3. 特殊消息类型的跨云一致性保障 + 顺序消息:如流水单、订单状态变更等场景,要求消息严格按 Key 分组并有序消费。跨云同步需确保同一分组消息不乱序(如阿里云集群主节点故障时,其他云备节点接管且不破坏顺序)。 + 延时消息:如营销活动定时通知等场景,依赖精确的时间控制。跨云同步需保证延时触发时间在毫秒级误差范围内,避免业务逻辑错乱。 ▍4. 成本与高可用性的平衡难题 双活部署需要在两朵云上独立部署完整集群(包括 Broker、NameServer、存储节点等)来保障高可用性,基础资源与运维成本接近翻倍。 长城汽车消息总线跨云双活方案 长城汽车消息总线跨云双活架构要点如下: + 消息总线基于其他云和阿里云跨云部署,通过专线通信确保网络可靠性。 + 管理服务部署在其他云,与消息总线服务解耦,避免管理服务故障影响消息总线运行。 + 跨云消息同步采用云消息队列 RocketMQ 版的 Global Replicator 实现秒级数据同步。 + 基于动态 DNS 实现双活节点流量按自定义比例分配,并在单云故障时支持一键切流。 ▍1. 双活与容灾能力 采用其他云自建 RocketMQ 与 阿里云云消息队列 RocketMQ 版构建多云双活架构,云消息队列 RocketMQ 版提供全球消息备份的容灾能力。 + 消息数据一致性:两地消息全量互备,数据可靠性更高;重试策略可在⽹络分割等极端场景下确保数据⼀致性和完整性;同步策略与备份方式可灵活配置,降低开发成本;内置消息过滤机制,避免消息在跨云传输过程中重复复制。 + 服务可用性:消息服务提供两地容灾能力,服务可用性更高,业务恢复更快,延续性更强。 + 高级消息支持:顺序消息按顺序复制,保障顺序语义;延时消息在源集群对消费者可见后(已到延时时间)再复制到目标集群,保障延时语义,消费端可⽴即消费。 + 同步能力弹性可扩展:Global Replicator 同步链路可弹性扩展,以满足低延时同步要求。 + 流量自定义分配:动态 DNS 支持灵活分配双活节点流量,并可结合健康检测自动切换。 ▍2. 版本兼容 + 云消息队列 RocketMQ 版 5.x 系列兼容开源 RocketMQ 4.9 SDK,业务逻辑无需改造;在收发可靠性与多副本存储方面提供保障,并提供弹性规格以应对突发流量。 + 服务可用性:自建集群缺少 SLA 保障,故障恢复依赖自运维。而云消息队列 RocketMQ 版天然支持多可用区部署,具备同城容灾能力,服务可用性最高可达 99.99%。 + 管控适配:云消息队列 RocketMQ 版提供标准管控 API 与可观测数据,便于与消息总线进行管控与运维集成。 ▍3. 高级特性消息 云消息队列 RocketMQ 版全球消息备份能力,在传输过程中保障源集群数据语义。 + 顺序消息:同步到目标集群时保持与写入源集群的顺序一致。 + 定时消息:以“源集群消息对消费者可见”为同步触发条件。 ▍4. 降本增效 汽车行业流量波动明显,云消息队列 RocketMQ 版 5.x Serverless 系列可根据实时负载自动弹性伸缩、按量付费,无需预估和配置实例规格。相比“按峰值预留并叠加冗余”的方式,可显著降低资源闲置成本。 消息总线全面升级的关键价值 ▍1. 能力升级:面向全球业务的消息底座 + 技术领先性:依托云消息队列 RocketMQ 版千万级 TPS 吞吐与毫秒级低延迟,构建跨云多活架构的车联网消息平台。通过“多地域集群 + 逻辑 Topic 分区”实现车辆数据就近接入与跨云无缝路由,突破传统架构单云单点的瓶颈,支撑全球化业务布局。智能流量调度跨域传输延迟降低 30% 以上。 + 架构先进性:云消息队列 RocketMQ 版 5.0 采用云原生架构(计算存储分离、无状态代理层),实现资源弹性伸缩与故障秒级隔离。结合 Serverless 化部署,提升扩容效率与资源利用率,支撑突发流量场景(如大规模 OTA 推送)平稳运行。 ▍2. 稳定可靠:多云互联下的全链路容灾 面对服务商级网络中断等极端场景,基于云消息队列 RocketMQ 版的跨云、跨地域的多活容灾体系,通过三级容灾防护实现“零数据丢失、零感知切换”的高可用: + 同城双活:基于阿里云多可用区(AZ)部署,RPO=0、RTO + 跨云灾备:跨云异步复制,保障核心业务数据跨地域冗余; + 智能故障自愈:通过流量染色与灰度路由自动隔离异常节点,结合 AIOps 预测潜在风险,故障恢复时间缩短至分钟级。 ▍3. 弹性降本:Serverless 系列按需弹性 借助云消息队列 RocketMQ 版 Serverless 系列,实现“按量付费 + 弹性容量”的轻量化运维: + 成本直降 50%+:按实际吞吐计费,闲时资源自动释放,降低资源与运维成本; + 敏捷创新:开发人员通过 API 分钟级接入消息服务,无需关注底层基础设施,新功能上线周期缩短 20%。 重塑车联网服务边界,驱动产业智能升级 长城汽车车联网 TSP 平台的跨云多活升级,不仅是技术架构的迭代,更是对“用户价值优先”理念的践行。借助阿里云云消息队列 RocketMQ 版,长城汽车构建了高可靠、高性能、高性价比的全球车联网服务基座,为未来 V2X 协同与个性化用户服务奠定坚实基础。 面向智能汽车竞争的“下半场”,长城汽车将持续以技术领先定义行业标准,让每一辆车成为万物互联世界中最可靠的智能节点,与全球合作伙伴共建车联网新生态。
查看全部文章
ABOUT US
Apache RocketMQ事件驱动架构全景图
微服务
Higress
Dubbo
Sentinel
Seata
Spring Cloud
Nacos
物联网
家电
汽车
穿戴设备
充电桩
工业设备
手机
事件驱动架构平台
RabbitMQ
Kafka
EventBridge
MQTT
RocketMQ
MNS
Apache RocketMQ as Core
计算
模型服务
函数计算
容器
存储
对象存储
数据库
NoSQL
分析
Flink
Spark
Elastic Search
事件
云服务器
对象存储
云监控
SaaS事件
通知
语音
短信
邮箱
移动推送

产品特点

为什么学习Apache RocketMQ

云原生
生于云,长于云,无限弹性扩缩,K8S 友好
高吞吐
万亿级吞吐保证,同时满足微服务于大数据场景
流处理
提供轻量、高扩展、高性能和丰富功能的流计算引擎
金融级
金融级的稳定性,广泛用于交易核心链路
架构极简
零外部依赖,Shared-nothing 架构
生态友好
无缝对接微服务、实时计算、数据湖等周边生态
浙ICP备12022327号-1120