Pulsar Topic(主题) 相关操作_基础操作

1、Pulsar Topic(主题) 相关操作_基础操作

Topic:话题主题的含义,在一个名称空间下,可以定义多个Topic 通过Topic进行数据的分类划分,将不同的类别的消息放置到不同Topic,消费者也可以从不同Topic中获取到相关的消息,是一种更细粒度的消息划分操作,同时在Topic下可以划分为多个分片,进行分布式的存储操作,每个分片下还存在有副本操作,保证数据不丢失,当然这些分片副本更多是由bookkeeper来提供支持。

Pulsar 提供持久化与非持久化两种topic。 持久化topic是消息发布、消费的逻辑端点。 持久化topic地址的命名格式如下:

persistent://tenant/namespace/topic

非持久topic应用在仅消费实时发布消息与不需要持久化保证的应用程序。 通过这种方式,它通过删除持久消息的开销来减少消息发布延迟。 非持久化topic地址的命名格式如下:

non-persistent://tenant/namespace/topic
1.1 创建Topic
  • 创建无分区的topic
[root@pulsar1 apache-pulsar-2.9.1]# bin/pulsar-admin topics create non-persistent://my-tenant/my-ns/my-non-partitioned-topic
[root@pulsar1 apache-pulsar-2.9.1]#
  • 创建有分区的topic
bin/pulsar-admin topics create-partitioned-topic persistent://my-tenant/my-ns/my-partitioned-topic --partitions 3

  • 列出namespace下的所有topic
bin/pulsar-admin topics list my-tenant/my-ns
"persistent://my-tenant/my-ns/my-partitioned-topic-partition-0"
"persistent://my-tenant/my-ns/my-partitioned-topic-partition-1"
"persistent://my-tenant/my-ns/my-partitioned-topic-partition-2"

可以看到my-non-partitioned-topic这个topic已经被删除了。这是因为一个topic被创建后,如果在创建后的60秒内不活动,就会被自动删除。可以通过如下两个参数进行控制

  • Brokerdeleteinactivetopicsenabenabled:表示是否启动自动删除,默认值为true
  • BrokerDeleteInactiveTopicsFrequencySeconds:表示不活动的时间,默认为60s
1.2 更新topic
bin/pulsar-admin topics update-partitioned-topic persistent://my-tenant/my-ns/my-partitioned-topic --partitions 6

1.3 删除topic
  • 删除无分区topic
bin/pulsar-admin topics delete non-persistent://my-tenant/my-ns/my-non-partitioned-topic

  • 删除有分区topic
bin/pulsar-admin topics delete-partitioned-topic persistent://my-tenant/my-ns/my-partitioned-topic

1.4 列出topic下的subscriptions
bin/pulsar-admin topics subscriptions persistent://public/default/my-partitioned-topic
"consume-test"

1.5 删除topic下的subscription
  • 需要该subscription没有active consumer
bin/pulsar-admin topics unsubscribe -s "consume-test"  persistent://public/my-partitioned-topic

2、 Pulsar Topic(主题) 相关操作_高级操作

2.1 授权
pulsar-admin topics grant-permission --actions produce,consume --role application1 persistent://test- tenant/ns1/tp1
2.2 获取权限
pulsar-admin topics grant-permission --actions produce,consume --role application1 persistent://test- tenant/ns1/tp1
2.3 取消权限
pulsar-admin topics revoke-permission --role application1 persistent://test-tenant/ns1/tp1
{
    "application1": [ 
        "consume", 
        "produce"
    ]
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值