用最简单的方式理解和使用ActivityMQ(基础入门)

基于JMS框架的消息中间件:ActivityMQ
优点:异步(无需等待)

下面分六步简单介绍
先简单概括ActivityMQ消息中间件
一、JMS基本概念
二、消息模式
三、其他消息中间件
四、Activity应用
五、整合springBoot使用消息中间件
六、其他注意点

正常情况下消息传递是通过请求响应现象完成的,但这种行为是同步的,容易产生阻塞,或者请求超时(出现重复提交的情况——通常情况下可以用token令牌解决)。
在这里插入图片描述

同步的前提下:
A项目:
如果出现B项目未响应 1、可以使用补偿机制(自动尝试连接3次),不行就会将信息放在日志中(补偿表)2、定时健康检查(哪些接口未更新导致无法连接)3、定时使用job(但这个不是实时的)。
B项目:
会出现幂等问题(多次重复响应请求)

在总结上面问题之后,就出现了我们的消息中间件ActivityMQ异步地传递消息:

在这里插入图片描述
(下图知识点很重要,请详细阅读)
在这里插入图片描述

在这里插入图片描述

总结:基于JMS的ActivityMQ框架解决了消息异步的问题,他有两种模式一种是点对点通信,一种是订阅模式,两者区别是前者生产者发布消息之后,消费者每次使用消息就删除消息,后者消费者使用消息之后消息不会被删除,下面为大家详细讲解JMS消息传递的相关概念~

一:JMS基本概念

  1.  JMS的目标
    
     为企业级的应用提供一种智能的消息系统,JMS定义了一整套的企业级的消息概念与工具,
    
     尽可能最小化的Java语言概念去构建最大化企业消息应用。统一已经存在的企业级消息系
    
     统功能。
    
  2.  JMS提供者
    
     JMS提供者是指那些完全完成JMS功能与管理功能的JMS消息厂商,理论上JMS提供者完成 
    
     JMS消息产品必须是100%的纯Java语言实现,可以运行在跨平台的架构与操作系统上,当前
    
     一些JMS厂商包括IBM,Oracle, JBoss社区 (JBoss Community), Apache 社区(ApacheCommunity)。
    
  3.  JMS应用程序, 一个完整的JMS应用应该实现以下功能:
    
      JMS 客户端 – Java语言开发的接受与发送消息的程序
    
      非JMS客户端 – 基于消息系统的本地API实现而不是JMS
    
      消息 – 应用程序用来相互交流信息的载体
    
       被管理对象–预先配置的JMS对象,JMS管理员创建,被客户端运用。如链接工厂,主题等
    
      JMS提供者–完成JMS功能与管理功能的消息系统
    

二:JMS的消息模式

2.1 点对点的消息模式(Point to Point Messaging)

2.1.1 P2P模式图

在这里插入图片描述

2.1.2 涉及到的概念

  • 1.消息队列(Queue)
  • 2.发送者(Sender)
  • 3.接收者(Receiver)
  • 4.每个消息都被发送到一个特定的队列,接收者从队列中获取消息。队列保留着消息,直到他们被消费或超时。

2.1.3 P2P的特点

  • 1.每个消息只有一个消费者(Consumer)(即一旦被消费,消息就不再在消息队列中)
  • 2.发送者和接收者之间在时间上没有依赖性,也就是说当发送者发送了消息之后,不管接收者有没有正在运行,它不会影响到消息被发送到队列
  • 3.接收者在成功接收消息之后需向队列应答成功
  • 4.如果消息未被持久化,那么在MQ关闭的时候队列中的消息缓存就会被清空
    如果你希望发送的每个消息都应该被成功处理的话,那么你需要P2P模式。

2.1.4 应用场景

A用户与B用户发送消息

2.2 发布订阅模式(publish – subscribe Mode)

2.2.1 Pub/Sub模式图

在这里插入图片描述

2.2.2涉及到的概念

  • 主题(Topic)
  • 发布者(Publisher)
  • 订阅者(Subscriber)
    客户端将消息发送到主题。多个发布者将消息发送到Topic,系统将这些消息传递给多个订阅者。

2.2.3 Pub/Sub的特点

每个消息可以有多个消费者
发布者和订阅者之间有时间上的依赖性。针对某个主题(Topic)的订阅者,它必须创建一个订阅者之后,才能消费发布者的消息,而且为了消费消息,订阅者必须保持运行的状态。
为了缓和这样严格的时间相关性,JMS允许订阅者创建一个可持久化的订阅。这样,即使订阅者没有被激活(运行),它也能接收到发布者的消息。
如果你希望发送的消息可以不被做任何处理、或者被一个消息者处理、或者可以被多个消费者处理的话,那么可以采用Pub/Sub模型
消息的消费
在JMS中,消息的产生和消息是异步的。对于消费来说,JMS的消息者可以通过两种方式来消费消息。
○ 同步
订阅者或接收者调用receive方法来接收消息,receive方法在能够接收到消息之前(或超时之前)将一直阻塞
○ 异步
订阅者或接收者可以注册为一个消息监听器。当消息到达之

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值