Day05 每日必会

简介: ca

怎么确保消息不丢失

面试官这个问题我们生产还真遇到过,后面也去了解了一下,我们用的是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执行流程



相关文章
|
9月前
|
Java Go 开发者
IDEA开发常用的快捷键
IntelliJ IDEA常用快捷键汇总:涵盖代码生成(如main、sout)、编辑(复制、删除、重命名)、导航(跳转、查找)、格式化、代码阅读及版本控制等高频操作,提升开发效率。熟练掌握可显著优化编码体验,是Java开发者必备技能。
808 1
|
3月前
|
Arthas 监控 Java
Arthas trace 命令怎么用?一行定位最慢那行代码
Arthas trace 弥补 watch 只见结果不见过程的短板:追踪调用路径、统计耗时,快速定位慢接口与未执行分支
Arthas trace 命令怎么用?一行定位最慢那行代码
|
9月前
|
Oracle Java 关系型数据库
Java命名规范
Java命名规范涵盖包、类、方法、变量等命名规则。包名全小写,类名首字母大写采用驼峰法,接口常用形容词,抽象类以Abstract/Base开头,异常类以Exception结尾,方法名小写驼峰,常量全大写用下划线分隔,枚举值按常量规范命名,提升代码可读性与一致性。
1137 0
|
3月前
|
SQL JSON 自然语言处理
通用Agent技能:5个开箱即用的业务自动化Skill
4-Phase编排架构:5个通用Agent Skill如何做到规则参数化+组件可组合+优雅降级 > 当你在写第3个评分逻辑的硬编码if-else时,就该想想:能不能把规则抽到YAML里,让业务改配置而不是改代码? 一、问题:为什么Agent Skill总在重复造轮子? Agent开发者都在面对同一个困境——每个业务场景都在重写相似的流水线: - 评分场景:提取特征 → 查规则 → 算
|
3月前
|
开发框架 运维 .NET
聚搜云:香港云服务器Linux和Windows哪个好?完整选择指南
本文详解香港云服务器Linux与Windows系统选择逻辑:Linux开源免费、轻量高效,适合PHP/Python/MySQL等开源栈及容器化部署;Windows需授权费、图形友好但资源占用高,专用于ASP.NET、MSSQL、AD等微软生态。决策核心是“技术栈匹配>运维能力>成本”,附三步实操选型指南。(239字)
|
4月前
|
存储 供应链 安全
1688 新手怎么运营 —— 中小企业 B2B 数字化从 0 到 1 起店指南 摘要
本文专为1688新手商家打造,系统梳理B2B数字化起店全流程:从破除C端思维、建立四大核心认知,到开店筹备、商品上架、冷启动、流量获取与转化提升,强调合规、系统化与产品力。附避坑指南与三阶段成长路径,助中小企业稳扎稳打完成从0到1。
|
4月前
|
人工智能 机器人 芯片
人工智能|YOLOv8实战
本内容为安全帽检测实战项目,基于YOLOv8模型,涵盖Kaggle数据获取、自定义yaml配置、模型训练(yolo_train.py)与测试(yolo_test.py),并提供服务器(FastAPI+Docker)、边缘(Jetson+TensorRT)及国产嵌入式(RK3588+RKNN)三类部署方案,支持工业场景实时智能识别。(239字)
580 1
|
4月前
|
运维 监控 Kubernetes
服务器突然连不上了,要从哪里开始查?
运维最怕的不是宕机,而是“突然连不上”:SSH超时、业务异常却难定位。本文详解五步排查法——从网络连通性、监控分析、控制台登录、防火墙到容器网络,并强调监控与巡检对早发现、快响应的关键价值。
|
10月前
|
Arthas 运维 监控
|
4月前
|
Ubuntu Java Linux
linux安装 jdk-8u291-linux-x64.tar.gz 详细步骤(解压配置环境变量)
本教程详解JDK 8u291在Linux服务器的安装流程:下载安装包→解压至`/usr/local/java`→配置`JAVA_HOME`等环境变量→验证`java -version`和`javac -version`。步骤清晰,适用于CentOS/Ubuntu等系统。(239字)

热门文章

最新文章