pulsar的 Topic 自动删除

pulsar的 Topic 自动删除

出现的现状:

​ 为了生产环境的安全及清洁,pulsar关闭自动创建topic的配置,broker.conf: allowAutoTopicCreation=false,这就导致了在手动创建项目依赖的topic之后,代码尚未发布成功,导致新建的topic处于不活跃状态,于是触发自动删除topicbroker.conf: brokerDeleteInactiveTopicsEnabled=true,导致应用程序启动报错,而Pulsar 在自动删除 partitioned topic 时,不会删除分区数量这个元数据。所以再次创建时会报错,需要删除后再重新创建。

# 查看topic
pulsar-admin topics list public/default
# 创建topic
pulsar-admin topics create-partitioned-topic persistent://public/default/my-topic --partitions 3

#删除topic
pulsar-admin topics delete-partitioned-topic persistent://public/default/my-topic

关闭Topic 自动删除

Pulsar 默认开启 Topic 自动删除。但 partitioned topic 被自动删除后,KoP 将无法访问它:

Error: NOT_LEADER_OR_FOLLOWER (org.apache.kafka.clients.producer.internals.Sender)

原因如下:

  • Pulsar 在自动删除 partitioned topic 时,不会删除分区数量这个元数据。
  • Kafka 协议在 METADATA 请求获取分区的 Leader Broker 后,直接向其发送 PRODUCE 请求。(而 Pulsar 协议则多了一个对分区创建 Producer 的请求)

解决方法 1:禁止 Topic 自动删除

broker.conf:
brokerDeleteInactiveTopicsEnabled=false

解决方法 2:启用分区数量自动删除

broker.conf:
brokerDeleteInactivePartitionedTopicMetadataEnabled=true

如果生产环境中比较依赖 Topic 自动删除,可以选择第二种方法。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值