一、RocketMQ核心概念

核心概念

一、RocketMQ核心概念_第1张图片
RocketMQ模型

根据上述模型,我们可以深入探讨有关消息传递系统设计的一些主题:

  • 消费者并发
  • 消费者热点问题
  • 消费者负载平衡
  • 消息路由器
  • 连接多路复用

Producer

生产者将业务应用程序系统生成的消息发送给代理。RocketMQ提供多种发送范例:同步,异步和单向。

Producer Group

具有相同角色的生产者组合在一起。如果原始生产者在事务之后崩溃,则代理可以联系同一生产者组的不同生产者实例以提交或回滚事务。

注意:考虑到提供的生产者在发送消息方面足够强大,每个生产者组只允许一个实例,以避免不必要的生成器实例初始化。

Consumer

Consumer从brokers处获取消息并将其提供给应用程序。从用户应用的角度来看,提供了两种类型的Consumer:

PullConsumer

PullConsumer主动从brokers那里获取消息。一旦提取了批量消息,用户应用程序就会启动消费过程。

PushConsumer

另一方面,PushConsumer封装消息提取,消耗进度并维护其他内部工作,留下最终用户的回调接口以实现将在消息到达时执行。

Consumer Group

与之前提到的生产者组类似,完全相同角色的Consumer被组合在一起并命名为Consumer Group

Consumer Group是一个很好的概念,在消息消费方面实现负载平衡和容错目标非常容易。

注意:使用者组的使用者实例必须具有完全相同的主题订阅。

Topic

Topic是生产者传递消息和消费者提取消息的类别。Topic与生产者和消费者的关系非常松散。具体而言,Topic可能有零个,一个或多个生成器向其发送消息; 相反,生产者可以发送不同Topic的消息。从消费者的角度来看,Topic可以由零个,一个或多个消费者群体订阅。类似地,消费者组可以订阅一个或多个主题,只要该组的实例保持其订阅一致即可。

Message

Message是要传递的信息。Message必须有一个主题,可以将其解释为您要发送给的邮件地址。Message还可以具有可选标记和额外的键 - 值对。例如,您可以为消息设置业务密钥,并在代理服务器上查找Message以诊断开发期间的问题。

Message Queue

主题被划分为一个或多个子主题“Message Queue”。

Tag

Tag,换句话说,子主题,为用户提供了额外的灵活性。对于标记,来自同一业务模块的具有不同目的的消息可以具有相同的主题和不同的标记。Tag有助于保持代码的清晰和连贯,而Tag也可以方便RocketMQ提供的查询系统。

Broker

Broker是RocketMQ系统的主要组成部分。它接收从生产者发送的消息,存储它们并准备处理来自消费者的拉取请求。它还存储与消息相关的元数据,包括消费者组,消耗进度偏移和主题/队列信息。

Name Server

Name Server充当路由信息提供者。生产者/消费者客户查找主题以查找相应的代理列表。

Message Model 消息模型

  • Clustering聚类

  • Broadcasting广播

Message Order 消息顺序

使用DefaultMQPushConsumer时,您可能决定按顺序或同时使用消息。

  • 有顺序地

按顺序使用消息意味着消息的消费顺序与生产者为每个消息队列发送的顺序相同。如果您正在处理全局顺序是必需的方案,请确保您使用的主题只有一个消息队列。

注意:如果指定了有序消费,则消息消耗的最大并发数是消费者组订阅的消息队列数。

  • 同时

在并发使用消息时,消息消耗的最大并发性仅受为每个使用者客户端指定的线程池的限制。

注意:此模式下不再保证消息顺序。

你可能感兴趣的:(一、RocketMQ核心概念)