Day04

简介: 本文介绍了MQ在异步通信与系统解耦中的典型应用,如订单支付后通知配送中心;讲解了RabbitMQ的四种交换机模式,项目中采用Topic模式;并深入探讨了消息不丢失机制,涵盖生产者确认、消息持久化与消费者ACK策略;同时涉及延迟消息实现方式及消息积压解决方案。

每日必会什么场景下你们用MQ

主要还是一些异步通信的场景吧,我们会用他去做系统解耦,比如我最近负责的这个项目里面的订单模块,它支付完成就需要告知下游的配送中心,去创建一条待配送的数据,这种又不要求强一致性,就是一个很好的MQ使用场景。

MQ有哪几种交换机模式,你们用的哪种

我了解到的有4种,一个是默认交换机,给基本队列和工作队列使用的;还有FanoutExchange广播模式,DirectExchange定向路由模式和TopicExchange话题路由模式,我们项目用的Topic模式

理论专项SpringIOCAOP三级缓存(循环依赖)设计模式事务失效场景(天机Day10)

每日必会怎么确保消息不丢失

面试官这个问题我们生产还真遇到过,后面也去了解了一下,我们用的是RabbitMQ,它本身是有生产者确认机制、MQ消息持久化和消费者确认机制三个保证的,如果面试官还想再了解深一点我可以再展开一下。生产者确认机制就是给每个消息指定一个唯一ID,当消息发送到MQ之后会有一个结果返回给发送者,如果是消息未投递到交换机就返回publish-confirm的nack,如果到了交换机但是没到队列就返回publish-return的ack,从而保证消息是百分百存储到消息队列中。消息持久化就比较简单,因为RabbitMQ本身就做了队列持久化、消息持久化、交换机持久化,所以它本身是没有问题的。消费者确认机制是通过消费者回执来确认消费者是否成功处理消息的:消费者获取消息后,应该向RabbitMQ发送ACK回执,表明自己已经处理消息。有三种配置方式:•manual:手动ack,需要在业务代码结束后,调用api发送ack。•auto:自动ack,由spring监测listener代码是否出现异常,没有异常返回ack;抛出异常返回nack•none:关闭ack,MQ假定消费者获取消息后会成功处理,因此消息投递后立即被删除我们项目中采用的事auto+重试次数来配置解决的

了解过MQ的延迟消息吗

了解过的面试官,他是可以通过基于消息的延迟发送或者基于消息队列的延迟消费,前者就是给消息设置一下TTL时间,后者我们是通过安装一个DelayExchange的插件来解决的。过去我们是在一些取消超时订单的业务场景下有实施过这个解决方案

怎么解决消息挤压呢

可以通过增加更多消费者,提高消费速度。也就是我们之前说的work queue模式(或者多线程同理)扩大队列容积,提高堆积上限

理论专项MyBatis#和&区别一级/二级缓存一条SQL执行流程



相关文章
|
SQL 设计模式 数据库
领域模型:贫血模型与充血模型的深度解析
领域模型:贫血模型与充血模型的深度解析
|
数据可视化 数据挖掘 UED
Python中的数据可视化:使用Matplotlib创建交互式图表
传统的数据可视化工具通常只能生成静态图表,而在数据分析和展示中,交互式图表能够提供更丰富的用户体验和更深入的数据探索。本文将介绍如何利用Python中的Matplotlib库创建交互式图表,让数据分析变得更加生动和直观。
|
3月前
|
人工智能 自然语言处理 API
阿里云百炼大模型、Token Plan与Coding Plan全解析:定位、关系、对比与选型指南
阿里云百炼是一站式大模型开发与应用服务平台,作为整个AI服务体系的技术底座,整合了自研通义千问全系列模型与DeepSeek、GLM、Kimi、MiniMax等主流第三方模型,提供文本生成、代码开发、多模态理解、智能体构建等全链路能力,覆盖内容创作、智能问答、数据分析、自动化办公等多元场景。
609 0
|
6月前
|
机器学习/深度学习 人工智能 自然语言处理
Transformer 时代的语言模型:大规模语言模型的发展脉络与技术演化
本文系统梳理大语言模型技术演进脉络:从Transformer与Attention机制奠基,到BERT/GPT的范式分野;从提示工程、RLHF对齐优化,到LLaMA开源引爆生态;再到LoRA微调、FlashAttention加速、RAG增强、MCP协议互联、Skills技能封装,直至Openclaw桌面级GUI智能体。覆盖模型架构、训练优化、推理加速、应用落地全链条。
Transformer 时代的语言模型:大规模语言模型的发展脉络与技术演化
|
4月前
|
负载均衡 安全 调度
香港服务器访问海外网站快吗?和大陆服务器怎么选?
很多企业在搭建跨境业务时,都会遇到一个核心问题:网站既要兼顾大陆用户访问,又希望海外用户打开速度稳定。那么,香港服务器到底适不适合全球业务?相比大陆服务器又该怎么选? 实际上,影响网站体验的关键,不只是带宽大小,更重要的是服务器访问速度、线路质量以及节点布局。如果服务器选择不合理,即便配置再高,也可能出现海外访问卡顿、国内延迟高等问题。
478 0
|
9月前
|
监控 Java 测试技术
OOM排查之路:一次曲折的线上故障复盘
本文记录了一次Paimon数据湖与RocksDB集成服务线上频繁OOM的排查历程。通过分析线程暴增、堆外内存泄漏,最终定位到SDK中RocksDB的JNI内存未释放问题,并借助Flink重构写入链路彻底解决。分享了MAT、NMT、async-profiler等工具的实战经验与排查思路,为类似技术栈提供借鉴。
OOM排查之路:一次曲折的线上故障复盘
|
9月前
|
人工智能 JSON 数据挖掘
大模型应用开发中MCP与Function Call的关系与区别
MCP与Function Call是大模型应用中两大关键技术。前者为跨模型标准化通信协议,实现工具与模型解耦;后者是模型调用外部功能的内置机制。二者互补协作,推动AI应用向更开放、灵活、可扩展的方向发展。
|
9月前
|
存储 Java 数据库
项目《四方保险》
本系列分享涵盖保险系统架构、数据库与功能设计、微服务划分、支付流程、保费计算、埋点设计及短信平台实现等实战经验,深入探讨《四方保险》项目中关键技术方案与优化策略,助力提升系统稳定性与业务支撑能力。(238字)
|
关系型数据库 测试技术 分布式数据库
刷新世界纪录!阿里云PolarDB凭借创新的「三层解耦」架构刷新TPC-C基准测试世界纪录
刷新世界纪录!阿里云PolarDB凭借创新的「三层解耦」架构刷新TPC-C基准测试世界纪录
|
机器学习/深度学习 供应链 监控
深度学习之实时库存管理
基于深度学习的实时库存管理在电商、零售、制造业和物流等多个行业中具有极高的应用价值。深度学习模型可以帮助企业实时监测库存动态、优化库存补充决策、预测需求波动,确保库存水平稳定且适合实际需求,从而降低成本、提高客户满意度。以下从核心技术、常见应用场景、技术挑战及未来发展方向进行详细说明。
1521 3