zoukankan      html  css  js  c++  java
  • 消息队列MQ

    常见的企业级MQ

    1. RabbitMQ

    是使用Erlang编写的一个开源的消息队列,本身支持很多的协议:AMQP,XMPP, SMTP, STOMP。

    优点: 也正是如此,使的它变的非常重量级,更适合于企业级的开发。同时实现了一个代理(Broker)构架,这意味着消息在发送到客户端之前可以在中央节点上排队。对路由(Routing),负载均衡(Load balance)或者数据持久化都有很好的支持。

    缺点: 它的可扩展性差,速度较慢,因为中央节点增加了延迟,消息封装后也比较大。

    2. ZeroMQ

    ZeroMQ是一个非常轻量级的消息系统,专门为高吞吐量/低延迟的场景开发,在金融界的应用中经常可以发现它。

    优点:号称最快的消息队列系统,尤其针对大吞吐量的需求场景。ZeroMQ能够实现RabbitMQ不擅长的高级/复杂的队列。

    缺点: 与RabbitMQ相比,ZeroMQ支持许多高级消息场景,但是你必须实现ZeroMQ框架中的各个块(比如Socket或Device等)。ZeroMQ非常灵活,但是你必须学习它的80页的手册(如果你要写一个分布式系统,一定要阅读它)。

    应用:Twitter的Storm中使用ZeroMQ作为数据流的传输。

    3. ActiveMQ

    ActiveMQ居于两者之间,类似于ZemoMQ,它可以部署于代理模式和P2P模式。类似于RabbitMQ,它易于实现高级场景,而且只需付出低消耗。它被誉为消息中间件的“瑞士军刀”。

    ActiveMQ的下一代产品为Apollo。

    4. Jafka/Kafka

    Kafka是Apache下的一个子项目,是一个高性能跨语言分布式Publish/Subscribe消息队列系统,而Jafka是在Kafka之上孵化而来的,即Kafka的一个升级版。具有以下特性:快速持久化,可以在O(1)的系统开销下进行消息持久化;高吞吐,在一台普通的服务器上既可以达到10W/s的吞吐速率;完全的分布式系统,Broker、Producer、Consumer都原生自动支持分布式,自动实现复杂均衡;支持Hadoop数据并行加载,对于像Hadoop的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka通过Hadoop的并行加载机制来统一了在线和离线的消息处理,这一点也是本课题所研究系统所看重的。Apache Kafka相对于ActiveMQ是一个非常轻量级的消息系统,除了性能非常好之外,还是一个工作良好的分布式系统。

    99. 其他MQ

    Redis(也可用作消息组件)、HornetQ、Apache Qpid、Sparrow、Starling、Kestrel、Beanstalkd、Amazon SQS

  • 相关阅读:
    [JAVA安全机制]Java虚拟机-保险沙箱
    计算机网络自顶向下方法第3章-传输层 (Transport Layer).1
    Python基础:一起来面向对象 (二) 之搜索引擎
    Python基础:一起来面向对象 (一)
    计算机网络自顶向下方法第2章-应用层(application-layer).2
    Python基础:lambda 匿名函数
    Python基础:自定义函数
    Python基础:异常处理
    Python基础:条件与循环
    计算机网络自顶向下方法第2章-应用层(application-layer).1
  • 原文地址:https://www.cnblogs.com/yeahwell/p/4386140.html
Copyright © 2011-2022 走看看