zoukankan      html  css  js  c++  java
  • RocketMQ学习笔记(1)----RocketMQ的简介

    1. 什么是RocketMQ?

      

      

      是一个队列模型的消息中间件,具有高性能、高可靠、高实时、分布式特点。
      Producer、Consumer、队列都可以分布式。
       Producer 吐一些队列轮流収送消息,队列集合称为Topic,Consumer 如果做广播消费,则一个consumer
      实例消费返个Topic 对应的所有队列,如果做集群消费,则多个Consumer 实例平均消费返个topic 对应的
      队列集合。
      能够保证严格的消息顺序
      提供丰富的消息拉叏模式
      高效的订阅者水平扩展能力
      实时的消息订阅机制
      亿级消息堆积能力
      较少的依赖

      RocketMQ作为阿里巴巴的两大分布式技术之一,是一款纯java、分布式、队列模型的开源消息中间件,他参考了Java的JMS规范,但是它并没有遵循JMS的规范,经历了淘宝双十一的洗礼,在功能和性能上据说是远超ActiveMQ。

    2. RocketMQ发展史

      1. Metaq(Metamorphsis) 1.x

       由开源社区killme2008维护,开源社区非常活跃。

       github地址:https://github.com/killme2008/Metamorphosis

      2. Metaq 2.x

       于2012年10月份上线,在淘宝内部被广泛使用。

      3. RecoketMQ 3.x

      metaq 3.0发布时,产品名称改为RocketMQ。基于公司内部开源共建原则,RocketMQ项目只维护核心功能,且去除了所有其他运行时的依赖,核心功能最简化。每个BU的个性化需求都在RocketMQ项目之上进行深度定制。RocketMQ向其他BU提供的仅仅是jar包,例如要定制一个Broker,那么只需要依赖rocketmq-broker这个jar包即可,可通过API进行交互,如果定制client,则依赖rocketmq-client这个jar包,对其提供的api进行再封装。

      开源社区地址:https://github.com/apache/RocketMQ

    3. RocketMQ特性

      原生分布式

      要知道RocketMQ原生就是支持分布式的,而ActiveMQ原生存在单点性。

      严格消息顺序
      RocketMQ可以保证严格的消息顺序,而ActiveMQ无法保证!

      亿级消息堆积
      RocketMQ提供亿级消息的堆积能力,这不是重点,重点是堆积了亿级的消息后,依然保持写入低延迟!

      两种的消息拉取模式(Push or Pull)。
      Push好理解,比如在消费者端设置Listener回调;而Pull,控制权在于应用,即应用需要主动的调用拉消息方法从Broker获取消息,这里面存在一个消费位置记录的问题(如果不记录,会导致消息重复消费)。

      特有的分布式协调器
      在Metaq1.x/2.x的版本中,分布式协调采用的是Zookeeper,而RocketMQ自己实现了一个NameServer,更加轻量级,性能好!

      组(Group)
      有了Producer/Consumer Group。
      ActiveMQ中并没有Group这个概念,而在RocketMQ中理解Group的机制很重要。想过没有,通过Group机制,让RocketMQ天然的支持消息负载均衡!比如某个Topic有9条消息,其中一个Consumer Group有3个实例(3个进程 OR 3台机器),那么每个实例将均摊3条消息!(注意RocketMQ只有一种模式,即发布订阅模式。)

      其他

      消息失败重试机制、高效的订阅者水平扩展能力、强大的API、事务机制等等

     

    原文 RocketMQ学习笔记(1)----RocketMQ的简介

  • 相关阅读:
    [linux1exe元旦特供]基于wine的IE6一键安装
    http://www.tianya.cn/publicforum/content/funinfo/1/1869814.shtml
    最全的design pattern 概述
    例解 autoconf 和 automake 生成 Makefile 文件
    根据条件分组SQL
    SQL Express自动备份
    通过asp.net 短信猫发短信
    EXT.NET GridPanel(按键事件带参的另一种写法)
    Asp.net操作IIS(调试通过)
    面向接口编程详解——编程实例(T2噬菌体)
  • 原文地址:https://www.cnblogs.com/xiaoshen666/p/10867472.html
Copyright © 2011-2022 走看看