ActiveMQ学习了解

本文深入介绍了ActiveMQ,包括MOM概念、JMS规范、ActiveMQ入门、Spring整合、持久化和集群配置。重点讲解了ActiveMQ的特点、支持的协议、消息模型、管理页面以及在项目中的应用和问题跟踪。
摘要由CSDN通过智能技术生成

开篇

项目中使用到activemq中间件,过程中使用,一直需求开发,并未有个深入的了解,特此学习了下ActiveMQ,ActiveMQ虽然是比较老牌的消息中间件,但是可学习的资料少有全面的,以下是个人在学习过程中整理的内容:

  • MOM-消息中间件
  • JMS规范
  • ActiveMQ入门介绍
  • Spring整合ActiveMQ
  • ActiveMQ持久化及集群
  • 项目中使用ActiveMQ
  • 问题跟踪:Connect Reset

MOM-消息中间件

Message-oriented Middleware 面向消息的中间件

  1. 特点
    异步
    解耦
    可靠、广播……

    MOM就是解决面对规模和复杂度越来越高的分布式系统的局限性,
    同步通信,消息等待,客户端和服务对象生命周期紧耦合,点对点通信等。

  2. 基于MOM系统
    这里写图片描述

  3. MOM的规范协议
    JMS规范Java Messaging Service
    AMQP协议Advanced Message Queuing Protocol
    STOMP协议 Streaming Text Orientated Message Protocol
    MQTT协议Message Queuing Telemetry Transport
    ……

    MOM的规范协议没有标准

  4. 当前流行的MOM
    Apache ActiveMQ:JMS/AMOP/STOMP均支持
    Apache RabbitMQ: AMQP标准
    Apache RocketMQ/Aliware MQ
    Kafka/Jafka:自行设计的基于TCP层的协议
    Apache Artemis:ActiveMQ子项目,非阻塞架构可嵌入消息服务
    Apache Apollo:ActiveMQ的下一代消息引擎
    IronMQ:商业化的消息引擎
    OpenMQ:JMS标准
    MicroSoft MQ:微软的消息服务
    ZeroMQ/JeroMQ:史上最快的消息队列
    Distributedlog:Twitter高性能的分布式日志复制服务

    RabbitMQ,Erlang语言开发,通过插件形式支持其他标准协议,如STOMP等;Kafka基于Scala语言,JafKa是Kafka的Java移植版;Artemis原身为HornetQ;Apollo线程和消息分派架构不同于ActiveMQ,为ActiveMQ的支持高核心、高资源配置的扩展重构;OpenMQ是SUN公司推出,完全支持其制定的JMS规范;Zero不支持持久化,C++API库,严格上来讲ZeroMQ并不是消息中间件

JMS规范

Java Message Service,SUN公司推出,为了解决百家争鸣实现各种形式MOM的现象指定一套规范, java的消息服务,JMS的客户端之间可以通过JMS服务进行异步的消息传输。

这里写图片描述

  1. 消息模型
    P2P-点对点

    这里写图片描述

    Pub/Sub,发布订阅

    这里写图片描述

  2. 体系架构
    JMS提供者
    JMS客户端
    JMS生产者
    JMS消费者
    JMS消息
    JMS队列
    JMS主题

    这里写图片描述

  3. JMS1.1 vs JMS2.0
    优化

    用JMSContext取代了Connection和Session对象
    利用try-with-resources块意味着无需调用close语句(JMSContext实现java.lang.AutoCloseable接口)
    简化接收消息内容message.getBody(class)或者receiveBody(class)
    创建会话简化传参,非事务只传递Session ACK,事务无需传递任何参数
    JMSProducer/JMSConsumer轻量级且至此方法链

    新功能

    同一个Topic可以指定Consumer共享
    Producer可以延迟指定时间发送消息
    Producer可以异步发送消息
    Producer必须设置JMSXDeliveryCount消息属性

ActiveMQ入门介绍

  1. 官网:http://activemq.apache.org/

    ActiveMQ的学习最好的是从官网上学习,但是ActiveMQ的官网让人吐槽的是杂乱无章,没有条理性,入门者学习比较痛苦。

  2. 特性

    支持多种跨语言客户端:Java、C、C ++、C#、Ruby、Perl、Python、PHP
    支持多种应用协议: OpenWire、Stomp 、AMQP、MQTT
    完全支持JMS1.1和J2EE 1.4
    支持多种传输协议:in-VM、TCP、SSL、NIO、UDP、Groups、JXTA
    Ajax、CXF、Axis和Spring的支持
    专为高性能集群,客户端服务器,对等通信而设计

  3. 使用
    下载包目录、配置、启停broker

    这里写图片描述

    管理页面:http://127.0.0.1:8161/admin/

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值