• ActiveMQ简介


    1.  什么是ActiveMQ

    ActiveMQ是一种开源的,实现了JMS1.1规范的,面向消息(MOM)的中间件,为应用程序提供高效的、可扩展的、稳定的和安全的企业级消息通信。ActiveMQ使用Apache提供的授权,任何人都可以对其实现代码进行修改。

    ActiveMQ 是一个 MOM,具体来说是一个实现了 JMS 规范的系统间远程通信的消息代理。

    2.  什么是MOM

    MOM 就是面向消息中间件(Message-oriented middleware),是用于以分布式应用或系统中的异步、松耦合、可靠、可扩展和安全通信的一类软件。MOM 的总体思想是它作为消息发送器和消息接收器之间的消息中介,这种中介提供了一个全新水平的松耦合。

    3.  什么是JMS

    JMS 叫做 Java 消息服务(Java Message Service),是 Java 平台上有关面向 MOM 的技术规范,旨在通过提供标准的产生、发送、接收和处理消息的 API 简化企业应用的开发,类似于 JDBC 和关系型数据库通信方式的抽象。

    4.   P2P 和 Pub/Sub 的区别

    • Provider:纯 Java 语言编写的 JMS 接口实现(比如 ActiveMQ 就是)
    • Domains:消息传递方式,包括点对点(P2P)、发布/订阅(Pub/Sub)两种
    • Connection factory:客户端使用连接工厂来创建与 JMS provider 的连接
    • Destination:消息被寻址、发送以及接收的对象

    P2P (点对点)消息域使用 queue 作为 Destination,消息可以被同步或异步的发送和接收,每个消息只会给一个 Consumer 传送一次。Consumer 可以使用 MessageConsumer.receive() 同步地接收消息,也可以通过使用MessageConsumer.setMessageListener() 注册一个 MessageListener 实现异步接收。多个 Consumer 可以注册到同一个 queue 上,但一个消息只能被一个 Consumer 所接收,然后由该 Consumer 来确认消息。并且在这种情况下,Provider 对所有注册的 Consumer 以轮询的方式发送消息。

    Pub/Sub(发布/订阅,Publish/Subscribe)消息域使用 topic 作为 Destination,发布者向 topic 发送消息,订阅者注册接收来自 topic 的消息。发送到 topic 的任何消息都将自动传递给所有订阅者。接收方式(同步和异步)与 P2P 域相同。除非显式指定,否则 topic 不会为订阅者保留消息。当然,这可以通过持久化(Durable)订阅来实现消息的保存。这种情况下,当订阅者与 Provider 断开时,Provider 会为它存储消息。当持久化订阅者重新连接时,将会受到所有的断连期间未消费的消息。

    5.   特性及优势

    1. 实现JMS1.1规范,支持J2EE1.4以上
    2. 可运行于任何jvm和大部分web容器(ActiveMQ works great in any JVM)
    3. 支持多种语言客户端(java, C, C++, AJAX, ACTIONSCRIPT等等)
    4. 支持多种协议(stomp,openwire,REST)
    5. 良好的spring支持(ActiveMQ has great Spring Support)
    6. 速度很快,JBossMQ的十倍(ActiveMQ is very fast; often 10x faster than JBossMQ.)
    7. 与OpenJMS、JbossMQ等开源jms provider相比,ActiveMQ有Apache的支持,持续发展的优势明显。
  • 相关阅读:
    HDU
    HDU
    HDU
    HDU
    POJ
    POJ
    POJ
    hdu-4745 Two Rabbits
    蓝桥杯历年试题 小朋友排队
    蓝桥杯历年试题 矩阵翻硬币
  • 原文地址:https://www.cnblogs.com/sjshare/p/8872082.html
Copyright © 2020-2023  润新知