zoukankan      html  css  js  c++  java
  • 消息列队组件的一些特性比较

    RabbitMQ
    基于AMQP实现,传统的messaging queue系统实现,基于Erlang。老牌MQ产品了。AMQP协议更多用在企业系统内,对数据一致性、稳定性和可靠性要求很高的场景,对性能和吞吐量还在其次。
    Kafka
    linkedin开源的MQ系统,主要特点是基于Pull的模式来处理消息消费,追求高吞吐量,一开始的目的就是用于日志收集和传输,0.8开始支持复制,不支持事务,适合产生大量数据的互联网服务的数据收集业务。
    ZeroMQ
    只是一个网络编程的Pattern库,将常见的网络请求形式(分组管理,链接管理,发布订阅等)模式化、组件化,简而言之socket之上、MQ之下。对于MQ来说,网络传输只是它的一部分,更多需要处理的是消息存储、路由、Broker服务发现和查找、事务、消费模式(ack、重投等)、集群服务等。
    NSQ
    基于Go语言的分布式实时消息平台,可用于大规模系统中的实时消息服务,并且每天能够处理数亿级别的消息,其设计目标是为在分布式环境下运行的去中心化服务提供一个强大的基础架构。 NSQ具有分布式、去中心化的拓扑结构,该结构具有无单点故障、故障容错、高可用性以及能够保证消息的可靠传递的特征。NSQ非常容易配置和部署,且具有最大的灵活性,支持众多消息协议。
    Redis
    是一个Key-Value的NoSQL数据库,虽然它是一个Key-Value数据库存储系统,但它本身支持MQ功能,比如Stack Overflow 使用列队特性与WebSocket结合推送消息与更新缓存策略。

    备注:除 RabbitMq、ActiveMQ、RocketMQ、KafKa、Pulsar 外,其他的消息系统还包括 NSQ(不提供多副本机制,默认不进行持久化)、EMQ、Kestrel(一般作为队列)、NATS(默认无持久化方案,需要用 NATS Streaming 和 Liftbridge 为 NATS 提供了持久化的、多副本的消息存储支持)等。

    REFER:
    https://taskqueues.com/#brokers
    https://github.com/apache/pulsar
    https://github.com/apache/kafka
    https://github.com/apache/rocketmq
    https://github.com/nsqio/nsq
    https://github.com/nats-io/nats-server

    NSQ:分布式的实时消息平台
    http://www.infoq.com/cn/news/2015/02/nsq-distributed-message-platform/
    Apache Kafka:下一代分布式消息系统
    http://www.infoq.com/cn/articles/apache-kafka
    Kafka是个奇葩!——Linkin论文学习笔记
    http://my.oschina.net/HardySimpson/blog/306761
    RabbitMQ和NSQ的一些特点的比较
    http://datastream.github.io/articles/mq-in-cloud
    RabbitMQ与Redis队列对比
    http://www.cnblogs.com/chinaboard/p/3819533.html
    【消息队列MQ】各类MQ比较
    http://blog.csdn.net/sunxinhere/article/details/7968886
    消息队列设计精要
    http://tech.meituan.com/mq-design.html

  • 相关阅读:
    异步IO数据库队列缓存
    Python终端如何输出彩色字体
    pycharm导入本地py文件时,模块下方出现红色波浪线时如何解决
    Python中字典的详细用法
    基于pandas数据预处理基础操作
    进程、线程、协程篇
    面向对象编程进阶
    常用sign算法
    Excel随机生成数据2
    Oracle dbms_random随机数包详解
  • 原文地址:https://www.cnblogs.com/Irving/p/5546809.html
Copyright © 2011-2022 走看看