RocketMQ 核心

RocketMQ 核心

译自rocket官方文档

image54c5a2f18400d98a.png

Producer

一个producer 发送由业务系统产生的消息给 broker。RocketMQ提供了多种发送方式:同步,异步,one-way。

Producer 集群

是许多有同样功能的producer。不同的producer连接同一个broker去提交或者回滚事务防止原始的producer在事务后崩溃。

Consumer

一个 Consumer 从broker拉取消息然后被应用消费。在用户应用中,提供了两种类型的Consumer:

  • PullConsumer
    Pull consumer 主动得拉取消息从broker,一旦拉取到拉取批量消息,用户应用初始化消费进程。

  • PushConsumer
    Push consumer, 从另一个角度, 封装了 message pulling(消息拉取), consuming progress(消费进程) and maintaining other work inside(维护其他), 留一个回调接口给用户去实现,这个回调接口方法会在消息到达时被执行。

Consumer 集群

和producer 集群类似,是一群有相同功能的consumer的集合。

消费者集群是一个伟大的概念,在消息消费方面实现了负载均衡和容错,非常简单。

Topic

Topic是一个producer传输消息和consumer消费消息的范围集合。Topic和P和C有非常紧密的关系。特别的是,一个Topic可能有0个,1个或者多个Producer来发送。当然,一个producer也可以发送消息给不同的topics。在Consumer方面,一个Topic可能被0个,1个,多个consumer订阅。一个消费者集群,相似的来说,可以订阅1个或者多个Topic只要保持集群订阅一致。

Message

Message是传送的信息。一个消息必须有topic,可以被你要发送的地方的作为地址解读。一个Message还可能有一个可选的optional和额外的键值对,比如你可以设置一个业务KEY给你的Message并在broker服务器查找消息去定位开发中的问题。

Message Queue

Topic被分为一个或者多个子Topic。成为Message queen。

Tag

Tag,另一种子Topic,提供额外的灵活性给用户,有了Tag,从同一业务模块来的有不同目的的消息可以有相同的Topic和不同的Tag,tag会在帮助你的代码整洁连贯,并且可以方便RocketMQ提供查询系统。

Broker

Broker 是主要组成部分. 接受来自Producer的消息,存储他们并准备去处理来自consumer的拉取请求。 他能存储元数据有关消息,包括消费者集群,消费进程偏移和topic/queue信息。

Name Server

充当的是路由信息提供者,P/C的客户端查找topics时找到对应的的broker集合。

消息类型

  • 节点

  • 订阅模式

Message Order

当使用DefaultMQPushConsumer时,你会有序的消费消息或者并发消费。

  • 有序
    有序消费消息意味着消息被按照producer发送一样的次序消费对每一个消息队列。如果你在处理强制全局次序的场景,需要确认你使用的topic是否只有一个消息队列。

  • 并发
    当并发消费消息时,对每一个消费者客户端,消费消息的最大并发只被线程池限制

猜你喜欢

转载自blog.csdn.net/doujinlong1/article/details/84109383