`
gaojingsong
  • 浏览: 1197107 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

【阿里之RocketMQ消息队列介绍】

阅读更多

RocketMQ的前身是Metaq,当 Metaq 3.0发布时,产品名称改为 RocketMQ

RocketMQ是一款分布式、队列模型的消息中间件,具有以下特点:

1、支持严格的消息顺序;

2、支持Topic与Queue两种模式;

3、亿级消息堆积能力;

4、比较友好的分布式特性;

5、同时支持Push与Pull方式消费消息;

 

 

RocketMQ is a fast, reliable, scalable, easy to use message oriented middleware born from alibaba massive messaging business.

 

It offers a variety of features as follows:

Pub/Sub and P2P messaging model

Reliable FIFO and strict sequential messaging in the same queue

Long pull queue model,also support push consumption style

Million message accumulation ability in single queue

Over a variety of messaging protocols.such as JMS,MQTT,HTTP2 etc.

Distributed high available deploy architecture, meets at least once message delivery semantics

Docker images for isolated testing and cloud Isolated clusters

Feature-rich administrative dashboard for configuration,metrics and monitoring Cloud Charge

Message full-link tracking Cloud Charge

Producer transaction message,making producer and local database transaction in one atomic operation Cloud Charge

Message Schedule delivery,similar JMS2 spec's delivery delay Cloud Charge

 

 

二、术语介绍

Producer

A producer sends messages generated by the business application systems to brokers. RocketMQ provides multiple paradigms of sending: synchronous, asynchronous and one-way.

 

Consumer

A Consumer pulls messages from brokers and feeds them into application. In perspective of user application, two types of consumers are provided:

 

PullConsumer

Pull consumer actively pulls messages from brokers. Once batches of messages are pulled, user application initiates consuming process.

 

PushConsumer

Push consumer, on the other hand, encapsulates message pulling, consuming progress maintaining and other effortful work inside, leaving a callback interface to end user to implement which will be executed on message arrival.

 

Producer Group

Producers of the same role are grouped together. A different producer instance of the same producer group may be contacted by a broker to commit or roll back a transaction in case the original producer crashed after starting the transaction.

Warning: Considering the provided producer is sufficiently powerful at sending messages, only one instance is allowed per producer group and process to avoid unnecessarily initializing of producer instances.

 

Consumer Group

Similar to previously mentioned producer group, consumers of the exactly same role are grouped together and named Consumer Group.

Consumer Group is a great concept with which achieving goals of load-balance and fault-tolerance, in terms of message consuming, is super easy.

Warning: consumer instances of a consumer group must have exactly same topic subscription(s).

 

Topic

Topic is a category to which producers deliver messages and from which consumers pull messages. Topics have very loose relation with producers and consumers. Specifically, a topic may have zero, one or multiple producers that sends messages to it; conversely, a producer can sends messages of different topics. In consumer's view, a topic may be subscribed by zero, one or multiple consumer groups; and a consumer group, in the same paradigm, may subscribe one or multiple topics as long as instances of this group keep their subscription consistent as emphasized in the previous section.

 

Message Queue

Topic, internally, is logically partitioned into one or more sub-topics. We call these sub-topics "message queues". This concept plays a major role in implementing valuable features, including fail-over, maximum concurrency, etc.

 

Message

Message is the envelope of your information to deliver. A message must be specified with a topic, which can be interpreted as address of your letter to mail to. A message may also have an optional tag set. Extra key-value pairs may also be included. For example, you may set a business key for your message and look up the message on broker server to diagnose issues during development.

 

Tag

Tag, which can be thought as sub-topic, provides an extra flexibility for user. Through introducing tag, messages with different purposes from the same business module may have the same topic yet different tag. It would be helpful to keep your code clean and coherent.

 

Broker

Broker is the major role of the RocketMQ system. It receives messages sent from producers, store them and being prepared to serve pull requests from consumers. It also stores message consuming related meta data, including consumer groups, consuming progress offsets and topic / queue info.

 

Name Server

Name server serves as the routing information provider. Producer/Consumer clients look up topics to find broker list to read from and write to.

Namesrv功能:

         接收broker的请求注册broker路由信息(包括master和slave)

 

         接收client的请求根据某个topic获取所有到broker的路由信息

 

Message Model

Clustering

Broadcasting

 

Message Order

When DefaultMQPushConsumer is employed, you may decide to consume messages orderly or concurrently.

Orderly

Consuming messages orderly means messages are consumed the same order they are sent by producers for each message queue. If you are dealing with scenario that global order is mandatory, make sure the topic you use has only one message queue.

Warn: If consuming orderly is specified, the maximum concurrency of message consuming is the number of message queues subscribed by the consumer group.

 

Concurrently

When consuming concurrently, maximum concurrency of message consuming is only limited by thread pool specified for each consumer client.

 

Warn: Message order is no longer guaranteed in this mode.

 

0
1
分享到:
评论

相关推荐

    阿里云rocketmq消息队列对接demo

    该资源为在购买了阿里云中间件产品rocketmq消息队列之后,使用的连接rocketmq的demo工程,该程序以 Java 为例,包括普通消息、事务消息、定时消息的测试代码,以及相关 Spring 的配置示例,同时提供tcp连接的程序。

    RocketMQ消息队列demo

    RocketMQ消息队列是阿里巴巴开源的一款分布式消息中间件,它主要设计用于处理大规模并发消息传输,提供高可用、高可靠以及高性能的消息服务。RocketMQ在阿里巴巴内部被广泛应用于订单、交易、用户行为等核心业务场景...

    RocketMQ消息队列资料

    RocketMQ是阿里巴巴开源的一款高效、稳定的消息队列产品,它主要设计用于处理大规模分布式系统中的异步通信和数据传输。作为一款中间件,RocketMQ在电商、金融、物联网等多种业务场景下表现出色,尤其在面临高并发、...

    RocketMq消息队列实施计划方案_.doc

    - **RocketMQ**:源自阿里巴巴,具备高性能、容错性和顺序消息支持,但需要处理消息重复和消费端去重。 3. **选用结论** 考虑到数据安全性、容错机制、集群模式和性能要求,RocketMQ因其特点成为首选。其高可用性...

    阿里云 专有云企业版 V3.8.1 消息队列 RocketMQ 版 开发指南 20200529

    "阿里云 专有云企业版 V3.8.1 消息队列 RocketMQ 版 开发指南 20200529" 以下是对标题、描述、标签和部分内容的详细解释: 标题:"阿里云 专有云企业版 V3.8.1 消息队列 RocketMQ 版 开发指南 20200529" * 阿里云...

    RocketMQ分布式消息队列

    RocketMQ是Apache的一款低延迟、高并发、高可用、高可靠的分布式消息中间件,由阿里捐赠。它经历了淘宝双十一的洗礼,具备互联网应用所需的海量消息堆积、高吞吐、可靠重试等特性。 消息队列的核心概念: Topic...

    阿里 Rocketmq4.2 安装包下载

    阿里RocketMQ是一款由阿里巴巴开源的高性能、高可用、高可靠的消息中间件,广泛应用于大数据、分布式系统以及微服务架构等领域。在RocketMQ 4.2版本中,它提供了更多的优化和增强功能,使得消息传递更加高效,同时也...

    阿里版 rocketmq-console

    阿里版 RocketMQ-Console 是阿里巴巴对 Apache RocketMQ 消息中间件提供的图形化管理工具,它使得用户可以更直观、方便地监控与管理 RocketMQ 的集群。RocketMQ 是一款高性能、高可用、分布式的消息中间件,广泛应用...

    (最新) 阿里云消息 RocketMQ开发手册

    在阿里云上提供服务后,RocketMQ也被广泛应用于各行各业,成为业界首选的消息队列之一。 ### RocketMQ核心特性 #### 1. 高吞吐量和低延时 RocketMQ支持极高的消息吞吐量,在大规模集群下仍能保持低延时的消息投递...

    rocketmq消息队列

    RocketMQ消息队列是中国阿里巴巴开源的一款分布式消息中间件,它主要设计用于处理大规模、高并发的消息传输场景。在本文中,我们将深入探讨RocketMQ的核心概念、功能特性、工作原理以及如何进行安装和使用。 首先,...

    阿里云 专有云企业版 V3.8.1 消息队列 MQ 产品简介 20190916

    "阿里云 专有云企业版 V3.8.1 消息队列 MQ 产品简介 20190916" 阿里云 专有云企业版 V3.8.1 消息队列 MQ 产品简介 20190916 是一款基于云计算平台的消息队列产品,旨在提供高效、可靠、安全的消息队列服务。该产品...

    shell脚本:自动部署rocketmq阿里巴巴消息队列阿帕奇消息队列

    自动部署rocketmq阿里巴巴消息队列阿帕奇消息队列 #用法 #为排除格式问题,请先执行:dos2unix /脚本根路径/auto_cfg_rmq.sh #最好部署到两台Linux主机。如果只部署一台主机,虽然可以成功,但是只会生成两个broker...

    阿里巴巴RocketMQ

    阿里巴巴RocketMQ是一款开源的消息中间件,它主要用于构建高可用、高性能、分布式消息系统。作为业界广泛采用的消息队列产品,RocketMQ在处理大规模并发、实时数据传输和异步任务处理等方面表现出色。以下是对...

    使用阿里云消息队列

    阿里云消息队列是一种高效、可靠且易于使用的分布式消息服务,它可以帮助开发者构建松耦合、高可用的应用系统。在本文中,我们将深入探讨阿里云消息队列的使用方法、核心概念以及它如何助力企业级应用开发。 首先,...

    阿里消息 Rocketmq3.1.1安装包(包含源码)

    阿里RocketMQ是一款开源的分布式消息中间件,广泛应用于阿里巴巴集团及众多互联网企业,它提供了高可用、高吞吐量的消息传递服务。RocketMQ 3.1.1是该产品的一个版本,包含了完整的源码,方便开发者进行深入学习和二...

    auto_cfg_rmqshell脚本:自动部署rocketmq阿里巴巴消息队列阿帕奇消息队列.7z

    RocketMQ是阿里巴巴开源的一款分布式消息中间件,它基于高可用分布式集群技术,提供低延迟、高吞吐量的的消息发布订阅服务。在大型分布式系统中,RocketMQ扮演着至关重要的角色,它支持实时消息传递、消息回溯、事务...

    阿里RocketMQ资料

    阿里RocketMQ是一款由阿里巴巴开源的分布式消息中间件,它在设计上强调了高可用性、高吞吐量和低延迟,被广泛应用于大型互联网公司的业务系统中,为各种微服务架构提供稳定的消息传递和事件驱动支持。本资料集合涵盖...

    阿里云 专有云企业版 V3.8.1 消息队列 RocketMQ 版 用户指南 20200525

    "阿里云专有云企业版V3.8.1消息队列RocketMQ版用户指南20200525" 本文档提供了阿里云专有云企业版V3.8.1消息队列RocketMQ版的用户指南,旨在帮助用户快速上手使用该产品。下面是本文档中所涉及到的知识点: 1. ...

Global site tag (gtag.js) - Google Analytics