zoukankan      html  css  js  c++  java
  • 常用MQ的对比冷知识

    16年阿里将RocketMQ捐赠给了开源软件基金会Apache,开源路走在了前面

     

     

    各类消息中间件对比

    ActiveMQ

    ActiveMQ是Apache出品的,最流行,能力强劲的开源消息总线。ActiveMQ是一个完全支持JMS1.1和J2EE1.4规范的JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演者特殊的地位。

    特性

    ActiveMQ支持多种语言和协议编写客户端:Java、C、C++、C#、Perl、Python、PHP

    支持应用协议:OpenWire、Stomp REST、WS NotificationXMPP、AMQP

    ActiveMQ完全支持JMS1.1和J2EE1.4规范(持久化,XA消息,事务)

    ActiveMQ还支持一些高级特性:虚拟主题、组合目的、镜像队列

    RabbitMQ

    RabbitMQ是一个开源的AMQP实现,服务端用Erlang语言编写。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

    特性:

    支持多种客户端,如Python、Ruby、.NET、Java、JMS、C、PHP、Actionscript等

    AMQP的完整实现(vhost、Exchange、Binding、Routing Key等)

    支持事务、发布确认

    支持消息持久化

    Kafka

    Kafka是一个高吞吐量的分布式发布订阅消息系统,是一个分布式的、分区的、可靠的分布式日志存储服务。它公国一种独一无二的设计提供了一个消息系统的功能。

    Kafka本身不是一个严格意义上的消息中间件,它本身是用来做日志储存的。所以kafka对消息的顺序要求的非常严格。

    特性

    Kafka通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于及时数以TB的消息存储也能够保持长时间的稳定性能。Kafka储存算法在持久化方面做得非常好,即使面对TB级别的消息(日志)数据也能给偶偶保持长时间的稳定。

    高吞吐量:即使是非常普通的硬件。Kafka也可以支持每秒数百万的消息。

    kafka支持分区(Partition)、消费者分组(Consumer Group)

  • 相关阅读:
    Flink安装排坑指南
    Java对类进行XSS过滤
    java.sql.SQLException: 无法转换为内部表示
    Flutter环境搭建
    运行npm命令 TypeError: Cannot read property 'get' of undefined
    利用Xilinx的cordic ip做开方运算
    modelsim脚本化仿真出现的两个错误
    opencv中使用imread()读入的图像,始终为显示为8位深度
    PS端时钟供给PL使用的问题
    Xilinx 使用shift_RAM消耗分布式RAM(LUTRAM)还是BRAM (Block RAM)?
  • 原文地址:https://www.cnblogs.com/Dmand/p/13129571.html
Copyright © 2011-2022 走看看