高性能分布式消息中间件—RocketMQ(一)

引言:亲爱的读者大家好,本人刚刚成立的个人微信公众号,记录一下java当中实用的技术栈。也会分享一下工作当中遇到的问题和难题以及解决方案。我是一个技术宅,知识想单纯的记录一下自己在工作中和学习中的经验总结,如果你也喜欢研究技术,那么请关注我。相互学习,互相成长。

我是这样规划的,想从以下的技术栈记录:

1:分布式系统消息中间件。

2:分布式搜索引擎。

3:分布式JOB。

4:分布式缓存。

5:分库分表。

6:手把手教你打造一个第三方公众平台。

7:分布式系统性能监控技术。

8:Spring生态源码解读。

9:Spring生态实战技术。

10:并发技术汇总。

11:jvm调优。

12:netty。

13:架构实战。

14:java基础。

15:Mysql & TIDB。

废话不多说。作为本公众号开篇大作,我选择了Rocketmq。原因是,我觉得这款中间件,除了非常高的性能之外,同时也是作为一名java程序员来说一门必备的学科,无论面试,还是工作中,都离不开它。尤其是在电商的场景下,更能凸显出这款中间件的魅力。

简介:

RocketMQ作为一款纯java、是由阿里巴巴公司开发的分布式、队列模型的开源消息中间件,支持事务消息、顺序消息、批量消息、定时消息、消息回溯等。

由开源社区killme2008维护,开源社区非常活跃。https://github.com/killme2008/Metamorphosis。Metaq 2.x。于2012年10月份上线,在淘宝内部被广泛使用 。Metaq 3.0发布时,产品名称改为RocketMQ。基于公司内部开源共建原则,RocketMQ项目只维护核心功能,且去除了所有其他运行时的依赖,核心功能最简化。每个BU的个性化需求都在RocketMQ项目之上进行深度定制。RocketMQ向其他BU提供的仅仅是jar包,例如要定制一个Broker,那么只需要依赖rocketmq-broker这个jar包即可,可通过API进行交互,如果定制client,则依赖rocketmq-client这个jar包,对其提供的api进行再封装。如今的rocketmq孵化成了Apache的顶级开源项目。

特点:

  • 支持发布/订阅(Pub/Sub)和点对点(P2P)消息模型
  • 在一个队列中可靠的先进先出(FIFO)和严格的顺序传递 (RocketMQ可以保证严格的消息顺序,而ActiveMQ无法保证)
  • 支持拉(pull)和推(push)两种消息模式 (Push好理解,比如在消费者端设置Listener回调;而Pull,控制权在于应用,即应用需要主动的调用拉消息方法从Broker获取消息,这里面存在一个消费位置记录的问题(如果不记录,会导致消息重复消费))
  • 单一队列百万消息的堆积能力 (RocketMQ提供亿级消息的堆积能力,这不是重点,重点是堆积了亿级的消息后,依然保持写入低延迟)
  • 支持多种消息协议,如 JMS、MQTT 等
  • 分布式高可用的部署架构,满足至少一次消息传递语义 (RocketMQ原生就是支持分布式的,而ActiveMQ原生存在单点性)
  • 提供 docker 镜像用于隔离测试和云集群部署
  • 提供配置、指标和监控等功能丰富的 Dashboard

  在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、事务机制等等。

专业术语

Producer

消息生产者,生产者的作用就是将消息发送到 MQ

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值