美文网首页ActiveMQ
[ActiveMQ之三] ActiveMQ 入门简介

[ActiveMQ之三] ActiveMQ 入门简介

作者: 小胡_鸭 | 来源:发表于2020-04-01 22:49 被阅读0次

    一、ActiveMQ 是什么?

      ActiveMQ 是 Apache 出品,非常流行的、能力强劲的开源消息总线,虽然现在 kafka、RocketMQ 异军突起,但在 MQ 的江湖里,ActiveMQ 依然占有一席之地。

    ActiveMQ 是一个完全支持 JMS1.1和J2EE 1.4规范的 JMS Provider 实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演者特殊的地位。


    二、JMS是什么?

      Java消息服务(Java Message Service,即JMS)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API。

      JMS在MQ中,有点类似于JDBC在DB中的位置,只是指定了一个规范和标准,具体实现由厂商开发接入。

    1、JMS的对象模型

    对象 作用
    ConnectionFactory 连接工厂
    Connection 连接
    Session 会话
    Destination 目的
    MessageProducer 生产者
    MessageConsumer 消费者
    Message 消息
    Broker 消息中间件的实例(ActiveMQ)

      连接工厂创建连接,连接创建会话,生产或发送消息前需要明确发送接收的目标,生产者生产消息,消费者消费消息。

    2、JMS的消息模型

    1)Point-to-Point(P2P)/点对点



    2)Public/Subscribe(Pub/Sub)/主题(发布订阅)




    3、JMS的消息结构


    1)消息头
    信息 描述
    JMSDestination 消息的目的地,Topic或者是Queue
    JMSDeliveryMode 消息的发送模式
    JMSTimestamp 消息传递给Broker的时间戳,它不是实际发送的时间
    JMSExpiration 消息的有效期,在有效期内,消息消费者才可以消费这个消息
    JMSPriority 消息的优先级。0-4为正常的优先级,5-9为高优先级
    JMSMessageID 一个字符串用来唯一标示一个消息
    JMSReplyTo 有时消息生产者希望消费者回复一个消息,JMSReplyTo为一个Destination,标示需要回复的目的地
    JMSCorrelationID 通常用来关联多个Message
    JMSType 表示消息体的结构,和JMS提供者有关
    JMSRedelivered 如果这个值为true,表示消息是被重新发送了

    2)消息属性
      消息属性可以理解为消息的附加消息头,属性名可以自定义,一般是应用附加的一些信息



    3)消息体

    类型 作用
    BytesMessage 用来传递字节消息
    MapMessage 用来传递键值对消息
    ObjectMessage 用来传递序列化对象
    StreamMessage 用来传递文件
    TextMessage 用来传递字符串


    三、ActiveMQ 的特性

    1、支持多种编程语言

      提供Java、PHP、C++、Python等语言工具包,使得不同的编程语言都可以使用 ActiveMQ

    2、支持多种传输协议

    协议 作用
    TCP 消息可靠
    UDP 多用于广播
    SSL 安全套接层
    NIO 连接池复用网络连接提高并发
    VM 无需网络传输在VM内部连接
    HTTP/HTTPS 提供Restful风格的调用API

      这些传输协议在服务端配置,为消息协议服务,对于客户端来说是透明的,并且支持自由组合,比如TCP + NIO + SSL,正是这种灵活性使 ActiveMQ 可以用于多种不同场景,促进其流行。

    3、有多种持久化方式

      支持文件或数据库形式的持久化,是流行的 RabbitMQ、Kafka、RocketMQ、ActiveMQ 中唯一支持持久化到数据库的 MQ。

    相关文章

      网友评论

        本文标题:[ActiveMQ之三] ActiveMQ 入门简介

        本文链接:https://www.haomeiwen.com/subject/srrzuhtx.html