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来设置

死信

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

消息顺序 重复消费

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ActiveMQ 即时通讯服务 浅析http://www.cnblogs.com/hoojo/p/active_m...
    bboymonk阅读 1,516评论 0 11
  • JMS Java消息服务 Java消息服务(Java Message Service,JMS)应用程序接口是一个J...
    wanggs阅读 257评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,991评论 19 139
  • ActiveMQ 简介:ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ ...
    CoderZS阅读 2,698评论 0 23
  • 向前看,向前走,向前进 美好的生活等着你。 快乐在洋溢, 幸福在洋溢, 我们一起向前冲!
    谢谢你过去和未来阅读 167评论 0 0