JMS & ActiveMq

JMS

先来了解下什么叫MOM

MOM(Message-oriented Middleware) 面向消息的中间件 。分布式系统的集成:利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信进行分布式系统的集成。

  • 定义

    • Java Message Service
    • 是一个java平台关于MOM(消息中间件)的api,用于两个程序之间,或分布式系统中发送消息,进行异步通讯。
  • 优势

    • Asynchronous 异步
      • 是一个异步的消息服务
      • 客户端获取消息的时候,不是主动获取,而是消息会主动发送给客户端
    • 可靠 Reliable
      • 会保证消息只被消费一次
  • 消费模型

    • p2p 点对点
    • publish/subscribe 发布订阅
  • 规范


    image
  • Message组成

    • Header 消息头
    • properties 属性 主要是对消息头中属性的补充
    • body 消息体 用户自定义 包括多种 TextMessage StreamMessage MapMessage ObjectMessage BytesMessage

ActiveMq

优势

  • 加快系统响应 系统分布式解耦,异步并行,加快系统对用户请求的访问速度
  • 降低系统耦合 子系统间通过队列通信,避免相互耦合和影响
  • 数据缓存 消息队列提供亿级的消息堆积能力

activemq就是实现了jms的一种provider

优化 及参数详解

  • 消息堆积
生产者

生产者发送的消息 主要分为两种 PERSISTENT Message(持久化)和NON_PERSISTENT

发送NON_PERSISTENT消息发送方默认使用异步方式。异步发送并非绝对的异步,发送者会在发送一定大小之后等待回执。

消费者

预取数量 prefetchSize
确认机制 ACK 用JMS中的acknowledge来设置

死信

多次消费都失败 那就放入一个异常队列 等待处理

消息顺序 重复消费

你可能感兴趣的:(JMS & ActiveMq)