消息队列基础知识学习

  • 优点

    • 通过异步处理提高系统性能(减少响应所需时间)。
    • 削峰/限流
    • 降低系统耦合性。
  • 缺点:

    • 系统可用性降低
    • 系统复杂性提高
    • 一致性问题

JMS

  • java的消息服务(API是一个消息服务的标准或者说是规范)

  • 可以实现异步的消息传输

  • 优点

    • 使分布式的耦合度更低
    • 消息服务更加可靠
    • 异步性
  • ActiveMQ实现的基础

  • 消息模式

    • 点对点(P2P)模型
      • Queue作为载体
      • 满足生产者和消费者模式
      • 一条消息只能被一个消费者使用,未被消费的消息在队列中保留直到被消费或超时
    • 发布订阅(Pub/sub)
      • 主题(Topic)作为消息通信载体
      • 类似于广播模式
      • 该消息通过主题传递给所有的订阅者,在一条消息广播之后才订阅的用户则是收不到该条消息的
  • 消息正文格式(五种)

    • StreamMessage – Java原始值的数据流
    • MapMessage–一套名称-值对
    • TextMessage–一个字符串对象
    • ObjectMessage–一个序列化的 Java对象
    • BytesMessage–一个字节的数据流

AMQP

  • 一个提供统一消息服务的应用层标准 高级消息队列协议(二进制应用层协议)

  • 兼容 JM

  • 基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件同产品,不同的开发语言等条件的限制

  • 是RabbitMQ实现的基础

JMS vs AMQP

对比方向JMSAMQP
定义Java API协议
跨语言
跨平台
支持消息类型提供两种消息模型:①Peer-2-Peer;②Pub/sub提供了五种消息模型:①direct exchange;②fanout exchange;③topic change;④headers exchange;⑤system exchange。本质来讲,后四种和JMS的pub/sub模型没有太大差别,仅是在路由机制上做了更详细的划分;
支持消息类型支持多种消息类型 ,我们在上面提到过byte[](二进制)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值