zoukankan      html  css  js  c++  java
  • ActiveMQ深入浅出系列 (一)

    简介

    Apache ActiveMQ是一个比较广泛使用的开源消息中间件。他的性能较快,并且支持许多语言的客户端及多种协议。它在企业集成模式中非常易于使用,并且完全支持JMS 1.1 和J2EE 1.4的很多高级特性。Apache ActiveMQ在Apache 2.0 Liense下开源。

    主要特性

    • 支持Java, C, C++, C#, Ruby, Perl, Python, PHP等客户端
      • OpenWire模式下的Java, C, C++, C#客户端的性能非常高。
      • Stomp支持是为了C, Ruby, Perl, Python, PHP, ActionScript/Flash,Smalltalk 语言能够方便的和ActiveMQ Broker 通信,就像其他消息Broker一样。
      • 支持AMQP v1.0 。
      • AMQP v1.0 支持允许在IOT环境中的设备的链接
    • JMS客户端和消息Broker完全支持企业集成模式
    • 支持诸如 Message Groups, Virtual Destinations, Wildcards and Composite Destinations
      • Message Group是针对queue。如果在queue模式下,一个生产者对应多个消费者,每生产一条消息,会被消费随即抢到,如果我们不希望这样,只希望固定的消息被固定的消费者消费,那么就采用group对消息进行一个类似标记的作用。另外一方面,Message Groups特性也是一种负载均衡的机制。在一个消息被分发到consumer之前,broker首先检查消息JMSXGroupID属性。如果存在,那么broker会检查是否有某个consumer拥有这个message group。如果没有,那么broker会选择一个consumer,并将它关联到这个message group。此后,这个consumer会接收这个message group的所有消息,直到: 1:Consumer被关闭 2:Message group被关闭,通过发送一个消息,并设置这个消息的JMSXGroupSeq为-1
      • Virtual Destinations 集群应用想要消费同一个队列时可以使用该模式。使用起来非常简单,对于消息发布者来说,就是一个正常的Topic,名称以VirtualTopic.开头。例如VirtualTopic.TEST。对于消息接收端来说,是个队列,不同应用(或者说不同集群 不同组)里使用不同的前缀作为队列的名称,即可表明自己的身份也可实现消费端应用分组。例如Consumer.A.VirtualTopic.TEST来说明他是A组的消费者。可以在同一个组内使用多个consumer来消费此组消息。每组相当于一个持久化订阅者,组内可以有多个消费者共同消费消息。
      • Wildcards and Composite Destination,通过通配符监听一批消息队列及同时发送多个通知。
    • 完全支持JMS 1.1和J2EE 1.4,支持transient, persistent, transactional and XA messaging
    • Spring支持,使ActiveMQ可以轻松地嵌入到Spring应用程序中,并使用Spring的XML配置机制进行配置
    • 在流行的J2EE服务器(如TomEE、Geronimo、JBoss、GlassFish和WebLogic)中进行了测试
      • 包含用于入站和出站消息传递的JCA 1.5资源适配器,以便ActiveMQ能够在任何符合J2EE 1.4的服务器中自动部署
    • 支持可插入传输协议,如in-VM、TCP、SSL、NIO、UDP、多播、JGroups和JXTA传输
    • 支持使用JDBC和高性能日志进行非常快速的持久性
    • 适用于高性能集群、客户端-服务器、对等通信
    • REST API为消息传递提供与技术无关和语言无关的基于web的API
    • Ajax支持使用纯DHTML向web浏览器提供web流支持,允许web浏览器成为消息传递结构的一部分
    • CXF和Axis支持,以便ActiveMQ可以轻松地放到这两个web服务栈中,以提供可靠的消息传递
    • 可以作为内存中的JMS提供程序使用,非常适合对JMS进行单元测试

    <wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

  • 相关阅读:
    VC++使用socket进行TCP、UDP通信实例总结
    [Android Pro] 调用系统相机和图库,裁剪图片
    [Android Pro] 查看 keystore文件的签名信息 和 检查apk文件中的签名信息
    [Android 新特性] 谷歌发布Android Studio开发工具1.0正式版(组图) 2014-12-09 09:35:40
    [Android 新特性] 有史来最大改变 Android 5.0十大新特性
    [Android Pro] service中显示一个dialog 或者通过windowmanage显示view
    [Android Pro] 通过Android trace文件分析死锁ANR
    [Android Memory] Android 的 StrictMode
    [Android Memory] Android性能测试小工具Emmagee
    [Android Memory] Android内存管理、监测剖析
  • 原文地址:https://www.cnblogs.com/alcc/p/10023406.html
Copyright © 2011-2022 走看看