每日必会5

简介: 通过生产者确认、消息持久化、消费者ACK机制确保RabbitMQ消息不丢失;使用DelayExchange插件实现延迟消息;通过扩容消费者或队列解决消息积压。MyBatis中#{}预编译防注入,${}直接拼接;一级缓存基于SqlSession,二级缓存跨SqlSession共享;SQL执行经Executor、StatementHandler等组件完成。

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

相关文章
|
4月前
|
人工智能 NoSQL 前端开发
面试真题
多套AI与Java面试题涵盖RAG、智能体、大模型部署、分布式系统、JVM调优、数据库设计等核心技术,深入考察项目经验、架构能力与技术深度,适用于中高级工程师岗位选拔。
|
4月前
|
人工智能 JSON 数据挖掘
大模型应用开发中MCP与Function Call的关系与区别
MCP与Function Call是大模型应用的两大关键技术。MCP为模型与外部工具提供标准化通信协议,实现跨模型、跨平台集成;Function Call则是模型调用外部函数的内置机制。前者如“蓝牙协议”,支持多设备互联,后者像“语音助手”,限于单机操作。两者在功能上互补:MCP支持工具热插拔、权限控制与远程调用,适用于企业级复杂系统;Function Call开发简单,适合快速验证单一模型能力。未来趋势将走向融合,形成“模型解析-协议传输-工具执行”的分层架构,推动AI应用生态标准化发展。
|
4月前
|
XML 算法 安全
详解RAG五种分块策略,技术原理、优劣对比与场景选型之道
RAG通过检索与生成结合,提升大模型在企业场景的准确性与安全性。分块策略是其核心,直接影响检索效果与回答质量。本文系统解析五种主流分块方法:固定大小、语义、递归、基于文档结构及LLM分块,对比其优缺点与适用场景,并提出组合优化路径,助力构建高效、可信的RAG系统。
|
4月前
|
监控 Java 调度
XXLJob定时任务概述
定时任务指按时间表达式周期执行的任务,适用于对账、提醒、订单超时等场景。实现方式包括单体架构的轮询休眠、Timer、ScheduledExecutorService、Quartz及SpringTask;分布式架构面临重复执行、动态调整、故障转移等问题,主流方案有XXL-JOB、Elastic-Job、Saturn和ScheduleX等。
|
4月前
|
Linux 数据安全/隐私保护 虚拟化
虚拟机安装(CentOS7)
准备CentOS7镜像及VMware Workstation(可从百度云下载),提取码已提供。使用VMware创建虚拟机,参考指定教程完成安装。默认登录用户为root,密码由用户自设。确保电脑配置满足运行需求。(238字)
|
4月前
|
机器学习/深度学习 存储 自然语言处理
大模型基础概念术语解释
大语言模型(LLM)基于Transformer架构,通过海量文本训练,具备强大语言理解与生成能力。其核心组件包括注意力机制、位置编码与嵌入层,支持文本分割为Token进行处理。参数量达十亿乃至万亿级,展现涌现与泛化能力,能完成多任务推理。混合专家模型(MoE)提升效率与扩展性,推动大模型持续发展。(237字)
|
4月前
|
消息中间件 人工智能 决策智能
AgentScope x RocketMQ:构建多智能体应用组合
AgentScope是阿里巴巴推出的开发者友好型多智能体框架,支持模块化、可定制的智能体应用开发。通过集成RocketMQ,实现高效可靠的A2A通信,助力构建如“智能旅行助手”等复杂协作场景,提升开发透明度与运行时可控性。(238字)
|
4月前
|
存储 负载均衡 算法
负载均衡算法
随机调用适用于性能均衡的服务器,可升级为加权随机以适配性能差异。轮询按序调用,支持加权提升调度精度,如权重[3,1]对应调用序列AAABA。最小活跃数优先选择负载低的节点,动态均衡负载。源地址哈希通过IP取模确保同一IP访问固定节点。一致性哈希将节点与请求映射至Hash环,实现节点变动时最小化数据迁移,保障服务稳定。
|
4月前
|
存储 缓存 Java
SpringCloud自定义注解
本文介绍Java自定义注解的实现与应用,结合Spring AOP与过滤器,演示日志处理、权限控制等场景。通过@Target、@Retention等元注解定义注解,并在Controller中结合AOP或拦截器实现功能增强,提升代码可读性与复用性。(238字)
|
4月前
|
前端开发 NoSQL Java
低代码IDEA启动项目
本文介绍如何在IDEA中启动Jeecg-Boot前后端项目。先启动Java后端:初始化MySQL与Redis,安装Maven依赖,修改数据库及Redis配置,运行主类启动服务;再启动Vue3前端:安装pnpm/yarn依赖,配置代理与接口地址,执行dev命令启动前端,访问http://localhost:3100,使用admin/123456登录系统。