pulsar学习随笔
pulsar学习文档
多租户命令
- 查看所有租户命令:./pulsar-admin tenants list
- 创建租户命令:./pulsar-admin tenants create zsk
- 查看某个租户信息:./pulsar-admin tenants get zsk
- 更新某个租户信息:./pulsar-admin tenants update zsk -r "dev"
- 删除某个租户信息:./pulsar-admin tenants delete zsk
pulsar名称空间
- 分为本地namespace(仅定义的集群可见)和全局namespace(跨集群可见),namespace是pulsar中最基本的管理单元,可以设置权限,调整副本设置,管理跨集群的消息复制,控制消息策略和执行关键操作。一个主题topic可以继承其对应的namespace属性。
- 在指定租户下创建名称空间:./pulsar-admin namespace create zsk/test-namespace 指定租户下的名称空间
- 获取所有的名称空间: ./pulsar-admin namespace list zsk
- 查看某个租户的具体信息: ./pulsar-admin namespace get zsk/test-namespace
- 删除名称空间:./pulsar-admin namespace delete test-tenant
- 查看名称空间相关的配置策略:./pulsar-admin namespaces policies zsk/test-namespace
pulsar名称空间高级配置
- 配置复制集群:./pulsar-admin namespaces set-clusters zsk/test-namespace --cluster cl2
- 获取给定名称空间复制集群的列表:./pulsar-admin namespaces get-clusters zsk/test-namespace
- 配置backlog quota策略:./pulsar-admin namespaces set-backlog-quato --limit 10G --limitTime 36000 --policy producer_request_hold zsk/test-namespace
- policy的值选择:
- producer_request_hold:broker暂停运行,并且不再持久化生产请求负载。
- producer_exception:broker抛出异常,并与客户端断开连接。
- consumer_backlog_eviction:broker丢弃积压消息。
- 获取backlog quota策略:./pulsar-admin namespaces get-backlog-quotas zsk/test-namespace
- 移除backlog quota策略: ./pulsar-admin namespaces remove-backlog-quato zsk/test-namespace
- 设置持久化策略:./pulsar-admin namespaces set-persistence --bookkeeper-ack-quorum 2 --bookkeeper-ensemble 3 --bookkeeper-write-quorum 2 --ml-mark-delete-max-rate 0 zsk/test-namespace
参数说明:
- bookkeeper-ack-quorum:每个entry在等待的acks(有保证的副本)数量,默认值:0
- bookkeeper-ensemble:单个topic使用的bookie数量,默认值:0
- bookkeeper-write-quorum:每个entry要写入的次数,默认值:0
- ml-mark-delete-max-rate:标记删除操作的限制速率(0.0表示无限制),默认值:0.0
- 设置消息存活时间:./pulsar-admin namespaces set-message-ttl --messageTTL 100 zsk/test-namespace
- 获取消息的存活时间:./pulsar-admin namespaces get-message-ttl zsk/test-namespace
- 删除消息的存活时间: ./pulsar-admin namespaces remove-message-ttl zsk/test-namespace
- 设置topic消息发送的速率:./pulsar-admin namespaces set-dispatch-rate zsk/test-namespace --msg-dispatch-rate 1000 --byte-dispatch-rate 1048576 --dispatch-rate-period 1
- msg-dispatch-rate 每秒钟发送的消息数量
- byte-dispatch-rate 每秒钟发送的总字节数
- dispatch-rate-period 设置发送的速率,比如1表示每秒钟
topic主题
- 持久化topic地址的命名格式: persistent://tenant/namespace/topic
- 非持久化topic地址的命名格式:non-persistent://tenant/namespace/topic
- 创建一个没有分区的topic: ./pulsar-admin topics create persistent://zsk/test-namespace/my-topic
- 创建要给有分区的topic: ./pulsar-admin topics create-partitioned-topic persistent://zsk/test-namespace/my-topic --partitions 4
- 注意:不管有没有分区,topic创建后,如果没有任何操作,60秒后pulsar会认为此topic是不活动的,会自动进行删除,以避免产生垃圾数据。
- brokerdeleteinactivetopicsenabenabled:默认值为true,表示是否自动删除topic
- brokerdeleteinactivetopicsfrequencyseconds:默认值为60s,表示检测未活动的时间。
- 更新topic:./pulsar-admin topics update-partitioned-topic persistent://zsk/test-namespace/my-topic --partitions 8
对有分区的topic更新其分区数量。
- 删除没有分区的topic:./pulsar-admin topics delete persistent://zsk/test-namespace/my-topic
- 删除有分区的topic:./pulsar-admin topics delete-partitioned-topic persistent://zsk/test-namespace/my-topic
- 授权:./pulsar-admin topics grant-permission --actions produce,consume, --role application1 persistent://zsk/test-namespace/my-topic
对主题授予生产,消费权限。
- 取消权限: ./pulsar-admin topics revoke-permission --role application1 persistent://zsk/test-namespace/my-topic