Non-persistent messaging
Non-persistent topics are Pulsar topics in which message data is never persistently stored and kept only in memory. 已创建的分区生产者和消费者,将自动查找新创建的分区。
- 非持久性主题的基本概念概述
- 非持久性主题相关的可配置参数信息
- 用于管理非持久性主题 CLI (命令行工具) 接口指南
概述
By default, Pulsar persistently stores all unacknowledged messages on multiple BookKeeper bookies (storage nodes). 因此,持久性主题上的消息数据可以在 broker 重启和订阅者故障转移之后继续存在。
Pulsar also, however, supports non-persistent topics, which are topics on which messages are never persisted to disk and live only in memory. 使用非持久性主题传输时,当某个 Pulsar broker宕机,或断开订阅者与某个主题(非持久性)的连接意味着所有正在传输的消息都会丢失,客户端也可能会看到消息的丢失。
非持久性主题具有这种形式的名称(注意名称中的 non-persistent
):
non-persistent://tenant/namespace/topic
有关非持久性主题的更多高级信息,请参见 Concepts and Architecture 文档。
使用
要使用非持久性主题,必须在 Pulsar broker 配置中启用。
为了使用非持久性主题,你只需要在与它们交互时按名称区分它们。 例如,此 pulsar-client produce
命令将在单集群的非持久性主题上生产一条消息:
$ bin/pulsar-client produce non-persistent://public/default/example-np-topic \
--num-produce 1 \
--messages "This message will be stored only in memory"
要从管理的角度获得关于非持久性主题的更详细的指南,请参阅非持久性主题指南。
启用
为了在 Pulsar broker 中启用非持久性主题,必须将 enableNonPersistentTopics
设置为true
。 你无需采取任何操作来启用非持久性消息传递,因为这是默认设置。
独立模式的配置
如果你在独立模式下运行 Pulsar,则可以在
standalone.conf
配置文件中使用相同的可配置参数。
If you’d like to enable only non-persistent topics in a broker, you can set the enablePersistentTopics
parameter to false
and the enableNonPersistentTopics
parameter to true
.
使用CLI(命令行工具)管理
可以使用 pulsar-admin non-persistent
命令行管理非持久性主题。 使用命令行工具,你可以执行诸如创建分区非持久性主题,获取非持久主题的统计信息,获取命名空间下的非持久主题列表等操作。
与Pulsar客户端一起使用
除了确保使用具有非持久性
的正确主题名称作为主题类型之外,你不应该对 Pulsar 客户端进行任何更改以使用非持久性消息传递。