Java 后端面试题库 / 全部题解免费阅读理解原理,有条理地回答

怎样集成 ActiveMQ 消息服务?

先说出你的答案

定义边界、关键机制、一个反例;P8题再补容量、失败与验证。

查看完整题解

参考回答

直接回答

先区分ActiveMQ Classic与Artemis,再选择相应Boot starter和兼容客户端,配置连接工厂与Broker地址,常用JmsTemplate发送、JmsListener接收。它们是消息接入工具,不会自动让数据库更新和消息发送成为一个跨系统原子事务。消息确认、重投与幂等仍需设计。

讲清原理

Boot可以按条件提供连接与监听基础设施,但生产Broker部署、持久化与访问权限仍是独立工作。队列和主题的消费语义不同,监听并发数与消息顺序也要一起考虑。

消费者处理成功但确认前进程退出,消息可能再次投递;处理失败则需受控重试与失败处置。不能把“监听方法只打印一次”当作消息永不重复的证明,也不直接相信不受信任的对象反序列化。

本地业务与待发事件一起提交,后续投递仍可能重复
本地业务与待发事件一起提交,后续投递仍可能重复

例子与易错点

需要订单事件可靠发送时,可评估本地事务事件记录与后续投递,而不是仅在服务方法上加Transactional。集成验收应包含Broker中断、重投、失败消息和幂等处理。

相关题:第 35 题、第 49 题、第 50 题。

这道题,你掌握得怎么样?

掌握程度由你主动标记,阅读和收藏不会自动改变状态。