Apache Pulsar 相关的一些术语
介绍
该文摘自Apache Pulsar 官方文档Apache Pulsar Terminology
下面是 Apache Pulsar 相关的一些术语
概念
Pulsar
Pulsar 是一个分布式消息系统,最初由 Yahoo 创建,现在是 Apache 软件基金会的一个孵化器项目。
消息(Message)
消息是Pulsar的基本单位。它是生产者发布到主题的内容,然后是消费者从主题中消费的内容。
Topic
Topic 接收 producer 发布的消息后,将消息传递给 consumer,由 consumer 消费这些消息。
分区 Topic(Partitioned Topic)
由多个 Pulsar broker 处理分区 topic,提高吞吐量。
命名空间(Namespace)
相关 topic 间的分组机制。
命名空间 Bundle(Namespace Bundle)
同一个命名空间下的虚拟 topic 组。 命名空间 bundle 是 32 位的哈希值,取值范围从 0x00000000 到 0xffffffff。
租户(Tenant)
用于分配容量和执行身份验证/授权方案的管理单元。
订阅(Subscription)
由一组消费者建立关于Topic的租约。 Pulsar具有四种订阅模式(独占,共享,故障转移和key_shared)。
发布 - 订阅(Pub-Sub)
一种消息传递模式,即 producer 进程发布消息到 topic,consumer 进程消费(处理)这些消息。
生产者(Producer)
发送消息到 Pulsar topic 的进程。
消费者(Consumer)
订阅 Pulsar topic 并处理消息(由 producer 发布到该 topic)的进程。
Reader
消息处理程序,与 Pulsar consumer 非常相似。二者之间有两个主要区别:
- Reader可以指定读在主题上从何处开始处理消息(消费者总是以最新的可用未确认消息开始)
- Reader 不保留数据,也不确认消息。
由于Pulsar主题分区实际上是存储在Apache BookKeeper中,它还提供了一个读取API(Reader),类似于消费者API(但Reader没有游标管理),以便用户完全控制如何使用Topic中的消息。
游标(Cursor)
Consumer 订阅分区的位置。
Ack(Acknowledgement)
Consumer 发送 ack 到 Pulsar broker,表明消息处理成功。 Pulsar 通过 Ack 确认是否可以将消息从系统中删除。如果没有收到 Ack,则一直保留消息到处理完成。
Nack(Negative Acknowledgment)
当应用程序无法处理特定消息时,应用程序向 Pulsar 发送 Nack,表示可以在一段时间后重新消费此消息。 (默认情况下,延迟1分钟后会重播失败的消息)
请注意,对独占、灾备、key共享的订阅类型的否定确认可能会导致失败的消息以非原始顺序到达使用者。
未确认(Unacknowledged)
已传递给使用者以进行处理但尚未确认为已由使用者处理的消息。
保留政策(Retention Policy)
在命名空间级别,通过设置消息大小和消息保留时间,为消息(已被 Ack)设置保留策略。
多租户(Multi-Tenancy)
能够隔离名称空间,指定配额以及按租户配置身份验证和授权的功能。
架构
单机版(Standalone)
轻量级的Pulsar代理,其中所有组件都在单个Java虚拟机(JVM)进程中运行。独立群集可以在单台计算机上运行,并且对于开发目的很有用。
集群(Cluster)
一组Pulsar代理和BookKeeper服务器(又称bookies)。集群可以驻留在不同的地理区域中,并且可以在称为地理复制的过程中将消息彼此复制。
实例(Instance)
一组Pulsar集群,这多个集群一起作为一个单元起作用。
地理复制(Geo-Replication)
在Pulsar群集之间(可能在不同的数据中心或地理区域中)复制消息。
Configuration Store
Pulsar的配置存储(以前称为配置存储)是ZooKeeper仲裁,用于特定于配置的任务。多集群的Pulsar安装仅需要跨所有集群的一个配置存储。
Topic Lookup
由Pulsar代理提供的一项服务,使连接客户端可以自动确定哪个Pulsar集群负责某个主题(从而确定该主题的消息通信需要路由到何处)。
服务发现(Service Discovery)
Pulsar提供的一种机制,使连接客户端可以仅使用单个URL与集群中的所有代理进行交互。
Broker
Pulsar群集的无状态组件,该组件运行其他两个组件
- 公开用于管理和主题查找的REST接口的HTTP服务器
- 处理所有消息传输的调度程序
Pulsar集群由多个broker组成
Dispatcher
用于进出Pulsar代理的所有数据传输的异步TCP服务器。脉冲星调度程序对所有通信使用自定义二进制协议。
存储
BookKeeper
Apache BookKeeper是一种可扩展的,低延迟的持久日志存储服务,Pulsar用于存储数据。
Bookie
Bookie是单个BookKeeper服务器的名称。它实际上是Pulsar的存储服务器。
Ledger
BookKeeper中的仅追加数据结构,用于将消息持久存储在Pulsar主题中。
Functions
Pulsar函数是轻量级函数,可以使用来自Pulsar主题的消息,应用自定义处理逻辑,并在需要时将结果发布到主题。
参考链接