SpringBoot + ActiveMQ 整合

本文介绍了Apache ActiveMQ的基本概念和作用,以及如何在SpringBoot中整合ActiveMQ。讲解了点对点(Queue)和发布/订阅(Topic)两种模式,详细阐述了ActiveMQ的安装与使用,以及在SpringBoot项目中创建生产者和消费者的过程。文章最后总结了消息重试和DLQ(死信队列)的相关机制。
摘要由CSDN通过智能技术生成

介绍 Apache ActiveMQ

 Apache ActiveMQ Apache软件基金会所研发的开放源代码消息中间件;由于ActiveMQ是一个纯Java程序,因此只需要操作系统支持Java虚拟机,ActiveMQ便可执行。支持Java消息服务(JMS);

  • 为什么要用mq(Mq能解决什么问题)?
      在高并发环境下,好多数据来不及同步处理,请求往往会发生堵塞;通过使用消息队列,我们可以异步处理请求,从而缓解系统的压力。
    RPC和消息中间件的不同很大程度上就是“依赖性”和“同步性”。RPC方式是典型的同步方式,让远程调用像本地调用。消息中间件方式属于异步方式。消息队列是系统级、模块级的通信。RPC是对象级、函数级通信。
    消息中间件常常用于:异步处理、应用解耦、流量削峰、日志处理、消息通讯

1.MQ对比与选型

  • 中小型项目用于解耦和异步操作,可考虑ActiveMQ,简单易用,对队列数较多的情况支持不好。
  • RabbitMQ,erlang开发,性能较稳定,社区活跃度高,但是不利于做二次开发和维护。ActiveMQ和RabbitMQ都适用于中小型公司,技术挑战不是特别高。
  • 大公司,基础架构研发实力较强,用RocketMQ不错,支持海量消息,但并没有实现JMS规范,使用起来很简单。
  • 大数据领域、日志采集等场景,Kafka是标准,其社区活跃度也很高。

2.什么是 Java消息服务(JMS) 规范

  • JMS即Java消息服务(Java Message Service)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持

3.JMS 体系架构

  •  JMS提供者(ConnectionFactory) – 连接面向消息中间件的,JMS接口的一个实现。提供者可以是Java平台的JMS实现,也可以是非Java平台的面向消息中间件的适配器 。连接工厂,用于创建连接;
  • JMS客户(Connection) – 生产或消费基于消息的Java的应用程序或对象。
  • JMS生产者(Message Producer) – 创建并发送消息的JMS客户。
  • JMS消费者 (Message Consumer)– 接收消息的JMS客户。
  • JMS消息(Session) – 包括可以在JMS客户之间传递的数据的对象。
  • JMS队列 (Destination)– 一个容纳那些被发送的等待阅读的消息的区域。与队列名字所暗示的意思不同,消息的接受顺序并不一定要与消息的发送顺序相同。一旦一个消息被 阅读,该消息将被从队列中移走。
  • JMS主题 – 一种支持发送消息给多个订阅者的机制。

4.JMS 属性

  • Destination(接口/目标)
  • Product(生产者)
  • Consumer(消费者)
  • Broker(消息转发器)
  • P2P,Pub/Sub(模型)

           – P2P:消息队列(Queue)、发送者(Sender)、接收者(Receiver)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值