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会自动创建
pulsar-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### permissionpulsar的权限控制是在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 application1persistent://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 \删除topicpulsar-admin persistent delete \persistent://test-tenant/ns1/tp1 \下线topicpulsar-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/tp1peek 消息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 \最后一条消息的MessageIDpulsar-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 \创建非持久化分区topicbin/pulsar-admin non-persistent create-partitioned-topic \non-persistent://my-tenant/my-namespace/my-topic \--partitions 4创建持久化分区topicbin/pulsar-admin persistent create-partitioned-topic \persistent://sd-bigdata/ns-ods/smartnews-sentiment-test2 \--partitions 8创建持久化非分区topicbin/pulsar-admin topics create persistent://my-tenant/my-namespace/my-topic创建非持久化非分区topicbin/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下线topicpulsar-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注意:修改分区数量时,只能比原来的分区数大删除topicbin/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上传schemapulsar-admin schemas upload <topic-name> --filename /path/to/schema-definition-file获取schemapulsar-admin schemas get <topic-name>删除schemapulsar-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要实现无限保留,请将两个值都设置为-1pulsar-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为命名空间设置 TTLpulsar-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
对租户授权(创建角色并授权)
# 创建rolebin/pulsar-admin tenants create sd-scrapy -r r_scrapy# 生成tokenbin/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
直接对租户授权
# 生成tokenbin/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,consume
topic 层设置消息保留策略
broker.conf设置:
systemTopicEnabled=truetopicLevelPoliciesEnabled=true
执行命令:
pulsar-admin topics set-message-ttl tenant/namespace/topic options

其它命令:
pulsar-admin broker-stats allocator-stats allocator-namepulsar-admin broker-stats topics optionspulsar-admin broker-stats mbeans optionspulsar-admin broker-stats monitoring-metrics options# Options# Flag Description Default# -i, --indent Indent JSON output falsepulsar-admin broker-stats load-reportpulsar-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-subscriptionspulsar-admin brokers list cluster-namepulsar-admin brokers leader-brokerpulsar-admin brokers namespaces cluster-name options# Options# --url The URL for the brokerpulsar-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 flagpulsar-admin brokers list-dynamic-configpulsar-admin topics get-persistence tenant/namespace/topicpulsar-admin topics set-persistence tenant/namespace/topic optionspulsar-admin schemas delete persistent://tenant/namespace/topicpulsar-admin schemas get persistent://tenant/namespace/topic --version xxpulsar-admin schemas upload persistent://tenant/namespace/topic --filename xx/xx/xx/..pulsar-admin topics remove-deduplication tenant/namespace/topicpulsar-admin topics get-deduplication tenant/namespace/topicpulsar-admin topics remove-message-ttl tenant/namespace/topicpulsar-admin topics get-message-ttl tenant/namespace/topicpulsar-admin topics remove-persistence tenant/namespace/topicpulsar-admin topics get-persistence tenant/namespace/topicpulsar-admin topics last-message-id persistent://tenant/namespace/topicpulsar-admin topics get-message-by-id topic options# Options# Flag Description Default# -l, --ledgerId The ledger id 0# -e, --entryId The entry id 0pulsar-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 frompulsar-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 tenantpulsar-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)
文章转载自大数据启示录,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




