消息队列简介

本文介绍了同步和异步消息的区别,重点探讨了企业级应用中广泛使用的三种异步消息传递技术——JMS、AMQP和MQTT。JMS是Java消息服务规范,提供API接口,包括点对点和发布订阅模型;AMQP是跨平台的消息代理协议,支持多种交换类型;MQTT则专注于物联网设备的消息传输。文中还提及了各种消息中间件如ActiveMQ、RabbitMQ和RocketMQ等。

消息队列简介

  • 消息发送方
    • 生产者
  • 消息接收方
    • 消费者
1.同步消息与异步消息的区别

**同步消息(synchronous message):**一般用于普通的过程调用。消息的发送者把控制传递给消息的接收者,然后停止活动,等待消息接收者放弃或者返回控制。调用消息可以用来表示同步的意义。

**异步消息(asynchronous message):**用于表示异步通信,即发送者发出消息后,立即继续执行下一步,不进行等待

2.消息队列

在这里插入图片描述

3.企业级应用中广泛使用的三种异步消息传递技术
  • JMS

  • AMQP

  • MQTT

    (1).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规范)

    (2)AMQP(advanced message queuing protocol):一种协议(高级消息队列协议,也是消息代理规范),规范了网络交换的数据格式,兼容JMS

    • 优点:具有跨平台性,服务器供应商,生产者,消费者可以使用不同的语言来实现
    • AMQP消息模型
      • direct exchange
      • fanout exchange
      • topic exchange
      • headers exchange
      • system exchange
    • AMQP消息种类:byte[]
    • AMQP实现:RabbitMQ、StormMQ、RocketMQ

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

4.消息中间件
  • ActiveMQ
  • RabbitMQ
  • RocketMQ
  • Kafka
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值