stanalone 启动
bin/pulsar standalone :当前terminal运行,terminal关闭,服务关闭 pulsar-daemon start/stop standalone :后台运行的standalone服务模式
client常见命令
bin/pulsar-client produce my-topic --messages "hello-pulsar" 向my-topic这个topic生产数据,内容为“hello-pulsar”,如果topic不存在,pulsar会自动创建 bin/pulsar-client consume persistent://sd-bigdata/ns-ods/smartnews-sentiment-test -s "first-subscription" -n 10 消费my-topic的数据,订阅名称为“first-subscription", 如果topic不存在,pulsar会自动创建
pulasar-admin常见命令
### tenants 查看所有tenants bin/pulsar-admin tenants list 创建tenants bin/pulsar-admin tenants create my-tenant 删除tenants bin/pulsar-admin tenants delete my-tenant ### broker 查看存活的broker信息 pulsar-admin brokers list use 查看broke如上的namesapce pulsar-admin brokers namespaces use --url broker1.use.org.com:8080 查看可以动态更新的配置 pulsar-admin brokers list-dynamic-config 查看已经动态更新过的配置 pulsar-admin brokers get-all-dynamic-config 动态更新配置 pulsar-admin brokers update-dynamic-config brokerShutdownTimeoutMs 100 ### namespace 查看tenant下的所有namespace pulsar-admin namespaces list test-tenant 创建namespace pulsar-admin namespaces create test-tenant/test-namespace 查看namespace策略 pulsar-admin namespaces policies test-tenant/test-namespace 删除namespace pulsar-admin namespaces delete test-tenant/ns1 ### permission pulsar的权限控制是在namespace级别的, 授权 pulsar-admin namespaces grant-permission test-tenant/ns1 \ --actions produce,consume \ --role admin10 注意:当broker.conf中的authorizationAllowWildcardsMatching 为true时,支持通配符匹配,例如, pulsar-admin namespaces grant-permission test-tenant/ns1 \ --actions produce,consume \ --role 'my.role.*' 获取授权信息 pulsar-admin namespaces permissions test-tenant/ns1 撤销授权 pulsar-admin namespaces revoke-permission test-tenant/ns1 \ --role admin10 ### persistent topics 查看namespace下的topic信息 pulsar-admin persistent list my-tenant/my-namespace 列举persistent topic pulsar-admin topics list tenant/namespace 给客户端添加针对于某个topic的role(许可) pulsar-admin persistent grant-permission --actions produce,consume --role application1 persistent://test-tenant/ns1/topic1 获取许可信息 pulsar-admin persistent permissions \ persistent://test-tenant/ns1/tp1 回滚许可 pulsar-admin persistent revoke-permission \ --role application1 \ persistent://test-tenant/ns1/tp1 \ 删除topic pulsar-admin persistent delete \ persistent://test-tenant/ns1/tp1 \ 下线topic pulsar-admin persistent unload \ persistent://test-tenant/ns1/tp1 查看topic相关的统计信息 pulsar-admin persistent stats \ persistent://test-tenant/ns1/tp1 查看topic内部统计信息 pulsar-admin persistent stats-internal \ persistent://test-tenant/ns1/tp1 peek 消息 pulsar-admin persistent peek-messages \ --count 10 --subscription my-subscription \ persistent://test-tenant/ns1/tp1 跳过消费部分消息 pulsar-admin persistent skip \ --count 10 --subscription my-subscription \ persistent://test-tenant/ns1/tp1 跳过所有数据 pulsar-admin persistent skip-all \ --subscription my-subscription \ persistent://test-tenant/ns1/tp1 \ 重置消费cursor到几分钟之前 pulsar-admin persistent reset-cursor \ --subscription my-subscription --time 10 \ persistent://test-tenant/ns1/tp1 \ 查找topic所在的broker信息 pulsar-admin persistent lookup \ persistent://test-tenant/ns1/tp1 \ 获取topic的bundle信息 pulsar-admin persistent bundle-range \ persistent://test-tenant/ns1/tp1 \ "0x00000000_0xffffffff" 查询topic的订阅信息 pulsar-admin persistent subscriptions \ persistent://test-tenant/ns1/tp1 \ 取消订阅 pulsar-admin persistent unsubscribe \ --subscription my-subscription \ persistent://test-tenant/ns1/tp1 \ 最后一条消息的MessageID pulsar-admin topics last-message-id topic-name non-persistent topics 获取统计信息 pulsar-admin non-persistent stats \ non-persistent://test-tenant/ns1/tp1 \ 获取内存统计信息 pulsar-admin non-persistent stats-internal \ non-persistent://test-tenant/ns1/tp1 \ 创建非持久化分区topic bin/pulsar-admin non-persistent create-partitioned-topic \ non-persistent://my-tenant/my-namespace/my-topic \ --partitions 4 创建持久化分区topic bin/pulsar-admin persistent create-partitioned-topic \ persistent://sd-bigdata/ns-ods/smartnews-sentiment-test2 \ --partitions 8 创建持久化非分区topic bin/pulsar-admin topics create persistent://my-tenant/my-namespace/my-topic 创建非持久化非分区topic bin/pulsar-admin topics create non-persistent://my-tenant/my-namespace/my-topic 分区topic的元数据信息 pulsar-admin non-persistent get-partitioned-topic-metadata \ non-persistent://my-tenant/my-namespace/my-topic 下线topic pulsar-admin non-persistent unload \ non-persistent://test-tenant/ns1/tp1 获取分区topic的元数据信息 pulsar-admin topics get-partitioned-topic-metadata \ persistent://my-tenant/my-namespace/my-topic 更新topic信息 pulsar-admin topics update-partitioned-topic \ persistent://my-tenant/my-namespace/my-topic \ --partitions 8 注意:修改分区数量时,只能比原来的分区数大 删除topic bin/pulsar-admin topics delete-partitioned-topic \ persistent://my-tenant/my-namespace/my-topic 获取统计信息 pulsar-admin topics partitioned-stats \ persistent://test-tenant/namespace/topic \ --per-partition 获取内部统计信息 pulsar-admin topics stats-internal \ persistent://test-tenant/namespace/topic ### Schema 上传schema pulsar-admin schemas upload <topic-name> --filename /path/to/schema-definition-file 获取schema pulsar-admin schemas get <topic-name> 删除schema pulsar-admin schemas delete <topic-name> # 创建集群(集群名:pulsar-cluster) ./bin/pulsar-admin clusters create --url http://pulsar.cluster.com:8080 pulsar-cluster # 创建租户(租户名:my-tenant) ./bin/pulsar-admin tenants create my-tenant # 创建命名空间(命名空间名,指定了租户my-tenant:my-tenant/my-namespace) ./bin/pulsar-admin namespaces create my-tenant/my-namespace # 更新命名空间为其指定集群 ./bin/pulsar-admin namespaces set-clusters my-tenant/my-namespace --clusters pulsar-cluster ### Manage schema 启用自动更新 bin/pulsar-admin namespaces set-is-allow-auto-update-schema --enable tenant/namespace 禁用自动更新 bin/pulsar-admin namespaces set-is-allow-auto-update-schema --disable tenant/namespace 调整兼容性 bin/pulsar-admin namespaces set-schema-compatibility-strategy --compatibility <compatibility-level> tenant/namespace ### 设置保留策略 命名空间内的每个主题的大小限制设置为 10 GB,时间限制设置为 3 小时。(即三小时内最大限制为10GB) pulsar-admin namespaces set-retention my-tenant/my-ns \ --size 10G \ --time 3h 时间不受限制,大小限制设置为 1 TB。大小限制决定了保留。 pulsar-admin namespaces set-retention my-tenant/my-ns \ --size 1T \ --time -1 要实现无限保留,请将两个值都设置为-1 pulsar-admin namespaces set-retention my-tenant/my-ns \ --size -1 \ --time -1 要禁用保留策略,请将两个值都设置为0。 pulsar-admin namespaces set-retention my-tenant/my-ns \ --size 0 \ --time 0 ### 清除积压 pulsar-admin namespaces clear-backlog my-tenant/my-ns ### TTL 为命名空间设置 TTL pulsar-admin namespaces set-message-ttl my-tenant/my-ns \ --messageTTL 120 获取命名空间的 TTL配置 pulsar-admin namespaces get-message-ttl my-tenant/my-ns 删除命名空间的 TTL配置 pulsar-admin namespaces remove-message-ttl my-tenant/my-ns
对租户授权(创建角色并授权)
# 创建role bin/pulsar-admin tenants create sd-scrapy -r r_scrapy # 生成token bin/pulsar tokens create --secret-key key/my-secret.key --subject sd-bigdata --expiry-time 10y # 授权 bin/pulsar-admin namespaces grant-permission sd-bigdata/ns-ods --role sd-bigdata --actions produce,consume
直接对租户授权
# 生成token bin/pulsar tokens create --secret-key key/my-secret.key --subject sd-bigdata --expiry-time 10y --subject sd-bigdata 租户 # 授权 bin/pulsar-admin namespaces grant-permission sd-bigdata/ns-ods --role sd-bigdata --actions produce,consum
topic 层设置消息保留策略
broker.conf设置:
systemTopicEnabled=true topicLevelPoliciesEnabled=true
执行命令:
pulsar-admin topics set-message-ttl tenant/namespace/topic options
其它命令:
pulsar-admin broker-stats allocator-stats allocator-name pulsar-admin broker-stats topics options pulsar-admin broker-stats mbeans options pulsar-admin broker-stats monitoring-metrics options # Options # Flag Description Default # -i, --indent Indent JSON output false pulsar-admin broker-stats load-report pulsar-admin brokers subcommand # Subcommands # compact # compaction-status # offload # offload-status # create-partitioned-topic # create-missed-partitions # delete-partitioned-topic # create # get-partitioned-topic-metadata # update-partitioned-topic # list-partitioned-topics # list # terminate # permissions # grant-permission # revoke-permission # lookup # bundle-range # delete # unload # create-subscription # subscriptions # unsubscribe # stats # stats-internal # info-internal # partitioned-stats # partitioned-stats-internal # skip # clear-backlog # expire-messages # expire-messages-all-subscriptions # peek-messages # reset-cursor # get-message-by-id # last-message-id # get-backlog-quotas # set-backlog-quota # remove-backlog-quota # get-persistence # set-persistence # remove-persistence # get-message-ttl # set-message-ttl # remove-message-ttl # get-deduplication # set-deduplication # remove-deduplication # get-retention # set-retention # remove-retention # get-dispatch-rate # set-dispatch-rate # remove-dispatch-rate # get-max-unacked-messages-per-subscription # set-max-unacked-messages-per-subscription # remove-max-unacked-messages-per-subscription # get-max-unacked-messages-per-consumer # set-max-unacked-messages-per-consumer # remove-max-unacked-messages-per-consumer # get-delayed-delivery # set-delayed-delivery # remove-delayed-delivery # get-max-producers # set-max-producers # remove-max-producers # get-max-consumers # set-max-consumers # remove-max-consumers # get-compaction-threshold # set-compaction-threshold # remove-compaction-threshold # get-offload-policies # set-offload-policies # remove-offload-policies # get-inactive-topic-policies # set-inactive-topic-policies # remove-inactive-topic-policies # set-max-subscriptions # get-max-subscriptions # remove-max-subscriptions pulsar-admin brokers list cluster-name pulsar-admin brokers leader-broker pulsar-admin brokers namespaces cluster-name options # Options # --url The URL for the broker pulsar-admin brokers update-dynamic-config options # Options # Flag Description # --config Service configuration parameter name # --value Value for the configuration parameter value specified using the --config flag pulsar-admin brokers list-dynamic-config pulsar-admin topics get-persistence tenant/namespace/topic pulsar-admin topics set-persistence tenant/namespace/topic options pulsar-admin schemas delete persistent://tenant/namespace/topic pulsar-admin schemas get persistent://tenant/namespace/topic --version xx pulsar-admin schemas upload persistent://tenant/namespace/topic --filename xx/xx/xx/.. pulsar-admin topics remove-deduplication tenant/namespace/topic pulsar-admin topics get-deduplication tenant/namespace/topic pulsar-admin topics remove-message-ttl tenant/namespace/topic pulsar-admin topics get-message-ttl tenant/namespace/topic pulsar-admin topics remove-persistence tenant/namespace/topic pulsar-admin topics get-persistence tenant/namespace/topic pulsar-admin topics last-message-id persistent://tenant/namespace/topic pulsar-admin topics get-message-by-id topic options # Options # Flag Description Default # -l, --ledgerId The ledger id 0 # -e, --entryId The entry id 0 pulsar-admin topics reset-cursor topic options # Options # Flag Description # -s, --subscription Subscription to reset position on # -t, --time The time in minutes to reset back to (or minutes, hours, days, weeks, etc.). Examples: 100m, 3h, 2d, 5w. # -m, --messageId The messageId to reset back to (ledgerId:entryId). pulsar-admin topics peek-messages topic options # Options # Flag Description Default # -n, --count The number of messages 0 # -s, --subscription Subscription to get messages from pulsar-admin functions start options # Options # Flag Description # --fqfn The Fully Qualified Function Name (FQFN) for the function # --instance-id The function instanceId (start all instances if instance-id is not provided) # --name The function's name # --namespace The function's namespace # --tenant The function's tenant pulsar-admin namespaces set-persistence tenant/namespace options # Options # Flag Description Default # -a, --bookkeeper-ack-quorum The number of acks (guaranteed copies) to wait for each entry 0 # -e, --bookkeeper-ensemble The number of bookies to use for a topic 0 # -w, --bookkeeper-write-quorum How many writes to make of each entry 0 # -r, --ml-mark-delete-max-rate Throttling rate of mark-delete operation (0 means no throttle)