SpringBoot 开发实用篇


文章目录

  • SpringBoot
  • SpringBoot 开发实用篇
  • 5 整合第三方技术
  • 5.18 消息简介
  • 5.18.1 消息
  • 5.18.2 技术介绍
  • 5.18.3 小结


5 整合第三方技术

5.18 消息简介
5.18.1 消息

springboot集成钉钉通知 springboot 消息_分布式

古代,烽火戏诸侯【当然我们不是谈历史,烽火台就是为了传递消息建的】

【两个主体】

springboot集成钉钉通知 springboot 消息_分布式_02

  • 消息发送方
  • 生产者
  • 消息接收方
  • 消费者

【消息的模式】

springboot集成钉钉通知 springboot 消息_分布式_03

同步消息:我【发送方】发一句后,对方【接收方】回应后,我再发【就是得在收到响应结果后,再往下进行】

springboot集成钉钉通知 springboot 消息_java_04

异步消息:不用等接收方确认,我只管发我的【这种模式应用面更广,毕竟如果接收方不理你了,那就卡住了】

【编程中消息的应用场景】

springboot集成钉钉通知 springboot 消息_分布式_05

假设有一次浏览器发了特多请求给系统,这个时候服务器压力就会很大

这个时候服务器就想,它找几个帮手帮助它,这样就有了若干个子服务器

这个就需要一个桥梁,来保存消息,这个时候主业务系统将消息发给 MQ,然后子业务系统再到MQ 中去取要执行的业务操作信息

这样的话,整个流程中要执行的工作,都转换成了消息的格式存在。

小结来说, 就是我们的服务器在接收到大量的请求后,它把所有的请求任务转换成消息,然后找个地方放起来,对应的子系统就从MQ 中去把要执行的工作取出来,然后处理,这样就可以有效降低主业务系统的压力

“中间”这个东西,就是“消息队列” MQ(Message Queue)

  • 企业级应用中广泛使用的三种异步消息传递技术
  • JMS
  • AMQP
  • MQTT
5.18.2 技术介绍

【JMS】

JMS(Java Message Service):一个规范,等同于JDBC规范,提供了与消息服务相关的API接口

JMS消息模型:

  • peer-2-peer:点对点模型,消息发送到一个队列中,队列保存消息。队列的消息只能被一个消费者消费,或超时【一对一】
  • publish-subscribe:发布订阅模型,消息可以被多个消费者消费,生产者和消费者完全独立,不需要感知对方的存在

JMS消息种类:

  • TextMessage
  • MapMessage
  • BytesMessage
  • StreamMessage
  • ObjectMessage
  • Message (只有消息头和属性)

JMS实现:ActiveMQ、Redis、HornetMQ、RabbitMQ、RocketMQ(没有完全遵守JMS规范)

【AMQP】

AMQP(advanced message queuing protocol):一种协议(高级消息队列协议,也是消息代理规范),规范了网络交换的数据格式,兼容JMS 【这个就拉近了各语言】

优点:具有跨平台性,服务器供应商,生产者,消费者可以使用不同的语言来实现

AMQP消息模型:

  • direct exchange
  • fanout exchange
  • topic 【关注】exchange
  • headers exchange
  • system exchange

AMQP消息种类:byte[]

AMQP实现:RabbitMQ、StormMQ、RocketMQ

【MQTT】

MQTT(Message Queueing Telemetry Transport)消息队列遥测传输,专为小设备设计,是物联网(IOT)生态系统中主要成分之一。

【Kafka】

Kafka,一种高吞吐量的分布式发布订阅消息系统,提供实时消息功能。【终于遇到你了,久仰大名】

【我们会做的东西】

  • ActiveMQ
  • RabbitMQ
  • RocketMQ
  • Kafka

好!迫不及待!!

5.18.3 小结
  1. 消息概念与作用
  2. JMS
  3. AMQP
  4. MQTT