import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem';
:::tip
This page only shows some frequently used operations.
For the latest and complete information about Pulsar admin, including commands, flags, descriptions, and more information, see Pulsar admin docs.
For the latest and complete information about REST API, including parameters, responses, samples, and more, see {@inject: rest:REST:/} API doc.
For the latest and complete information about Java admin API, including classes, methods, descriptions, and more, see Java admin API doc.
:::
Pulsar namespaces are logical groupings of topics.
Namespaces can be managed via:
namespaces command of the pulsar-admin tool/admin/v2/namespaces endpoint of the admin {@inject: rest:REST:/} APInamespaces method of the PulsarAdmin object in the Java APIYou can create new namespaces under a given tenant.
<Tabs groupId="api-choice" defaultValue="pulsar-admin" values={[{"label":"pulsar-admin","value":"pulsar-admin"},{"label":"REST API","value":"REST API"},{"label":"Java","value":"Java"}]}> <TabItem value="pulsar-admin"> Use the [`create`](pathname:///reference/#/@pulsar:version_reference@/pulsar-admin/namespaces?id=create) subcommand and specify the namespace by name: ```shell pulsar-admin namespaces create test-tenant/test-namespace ``` </TabItem> <TabItem value="REST API"> [](swagger:/admin/v2/Namespaces_createNamespace) </TabItem> <TabItem value="Java"> ```java admin.namespaces().createNamespace(namespace); ``` </TabItem> </Tabs>
You can fetch the current policies associated with a namespace at any time.
<Tabs groupId="api-choice" defaultValue="pulsar-admin" values={[{"label":"pulsar-admin","value":"pulsar-admin"},{"label":"REST API","value":"REST API"},{"label":"Java","value":"Java"}]}> <TabItem value="pulsar-admin"> Use the [`policies`](pathname:///reference/#/@pulsar:version_reference@/pulsar-admin/namespaces?id=policies) subcommand and specify the namespace: ```shell pulsar-admin namespaces policies test-tenant/test-namespace ``` Example output: ```json { "auth_policies": { "namespace_auth": {}, "destination_auth": {} }, "replication_clusters": [], "bundles_activated": true, "bundles": { "boundaries": [ "0x00000000", "0xffffffff" ], "numBundles": 1 }, "backlog_quota_map": {}, "persistence": null, "latency_stats_sample_rate": {}, "message_ttl_in_seconds": 0, "retention_policies": null, "deleted": false } ``` </TabItem> <TabItem value="REST API"> [](swagger:/admin/v2/Namespaces_getPolicies) </TabItem> <TabItem value="Java"> ```java admin.namespaces().getPolicies(namespace); ``` </TabItem> </Tabs>
You can list all namespaces within a given Pulsar tenant.
<Tabs groupId="api-choice" defaultValue="pulsar-admin" values={[{"label":"pulsar-admin","value":"pulsar-admin"},{"label":"REST API","value":"REST API"},{"label":"Java","value":"Java"}]}> <TabItem value="pulsar-admin"> Use the [`list`](pathname:///reference/#/@pulsar:version_reference@/pulsar-admin/namespaces?id=list) subcommand and specify the tenant: ```shell pulsar-admin namespaces list test-tenant ``` Example output: ``` test-tenant/namespace1 test-tenant/namespace2 ``` </TabItem> <TabItem value="REST API"> [](swagger:/admin/v2/Namespaces_getTenantNamespaces) </TabItem> <TabItem value="Java"> ```java admin.namespaces().getNamespaces(tenant); ``` </TabItem> </Tabs>
You can delete existing namespaces from a tenant.
<Tabs groupId="api-choice" defaultValue="pulsar-admin" values={[{"label":"pulsar-admin","value":"pulsar-admin"},{"label":"REST API","value":"REST API"},{"label":"Java","value":"Java"}]}> <TabItem value="pulsar-admin"> Use the [`delete`](pathname:///reference/#/@pulsar:version_reference@/pulsar-admin/namespaces?id=delete) subcommand and specify the namespace: ```shell pulsar-admin namespaces delete test-tenant/namespace1 ``` </TabItem> <TabItem value="REST API"> [](swagger:/admin/v2/Namespaces_deleteNamespace) </TabItem> <TabItem value="Java"> ```java admin.namespaces().deleteNamespace(namespace); ``` </TabItem> </Tabs>
You can set replication clusters for a namespace to enable Pulsar to internally replicate the published messages from one colocation facility to another.
<Tabs groupId="api-choice" defaultValue="pulsar-admin" values={[{"label":"pulsar-admin","value":"pulsar-admin"},{"label":"REST API","value":"REST API"},{"label":"Java","value":"Java"}]}> <TabItem value="pulsar-admin"> ```shell pulsar-admin namespaces set-clusters test-tenant/namespace1 --clusters cl1 ``` </TabItem> <TabItem value="REST API"> [](swagger:/admin/v2/Namespaces_setNamespaceReplicationClusters) </TabItem> <TabItem value="Java"> ```java admin.namespaces().setNamespaceReplicationClusters(namespace, clusters); ``` </TabItem> </Tabs>
You can get the list of replication clusters for a given namespace.
<Tabs groupId="api-choice" defaultValue="pulsar-admin" values={[{"label":"pulsar-admin","value":"pulsar-admin"},{"label":"REST API","value":"REST API"},{"label":"Java","value":"Java"}]}> <TabItem value="pulsar-admin"> ```shell pulsar-admin namespaces get-clusters test-tenant/cluster1/namespace1 ``` Example output: ``` cluster2 ``` </TabItem> <TabItem value="REST API"> [](swagger:/admin/v2/Namespaces_getNamespaceReplicationClusters) </TabItem> <TabItem value="Java"> ```java admin.namespaces().getNamespaceReplicationClusters(namespace) ``` </TabItem> </Tabs>
Backlog quota helps the broker to restrict bandwidth/storage of a namespace once it reaches a certain threshold limit. Admin can set the limit and take the corresponding action after the limit is reached.
producer_request_hold: the producer holds the message and retries until client configuration sendTimeoutMs is exceeded
producer_exception: the producer throws an exception when trying to send a message
consumer_backlog_eviction: broker starts discarding backlog messages
Backlog quota restriction can be taken care of by defining the restriction of backlog-quota-type: destination_storage.
<Tabs groupId="api-choice" defaultValue="pulsar-admin" values={[{"label":"pulsar-admin","value":"pulsar-admin"},{"label":"REST API","value":"REST API"},{"label":"Java","value":"Java"}]}> <TabItem value="pulsar-admin"> ```shell pulsar-admin namespaces set-backlog-quota --limit 10G \ --limitTime 36000 \ --policy producer_request_hold \ test-tenant/namespace1 ``` </TabItem> <TabItem value="REST API"> [](swagger:/admin/v2/Namespaces_setBacklogQuota) </TabItem> <TabItem value="Java"> ```java admin.namespaces().setBacklogQuota(namespace, new BacklogQuota(limit, limitTime, policy)) ``` </TabItem> </Tabs>
You can get a configured backlog quota for a given namespace.
<Tabs groupId="api-choice" defaultValue="pulsar-admin" values={[{"label":"pulsar-admin","value":"pulsar-admin"},{"label":"REST API","value":"REST API"},{"label":"Java","value":"Java"}]}> <TabItem value="pulsar-admin"> ```shell pulsar-admin namespaces get-backlog-quotas test-tenant/namespace1 ``` Example output: ``` destination_storage BacklogQuotaImpl(limit=10737418240, limitSize=10737418240, limitTime=36000, policy=producer_request_hold) ``` </TabItem> <TabItem value="REST API"> [](swagger:/admin/v2/Namespaces_getBacklogQuotaMap) </TabItem> <TabItem value="Java"> ```java admin.namespaces().getBacklogQuotaMap(namespace); ``` </TabItem> </Tabs>
You can remove backlog quota policies for a given namespace.
<Tabs groupId="api-choice" defaultValue="pulsar-admin" values={[{"label":"pulsar-admin","value":"pulsar-admin"},{"label":"REST API","value":"REST API"},{"label":"Java","value":"Java"}]}> <TabItem value="pulsar-admin"> ```shell pulsar-admin namespaces remove-backlog-quota test-tenant/namespace1 ``` </TabItem> <TabItem value="REST API"> [](swagger:/admin/v2/Namespaces_removeBacklogQuota) </TabItem> <TabItem value="Java"> ```java admin.namespaces().removeBacklogQuota(namespace, backlogQuotaType) ``` </TabItem> </Tabs>
Persistence policies allow users to configure persistency-level for all topic messages under a given namespace.
Bookkeeper-ack-quorum: Number of acks (guaranteed copies) to wait for each entry, default: 2
Bookkeeper-ensemble: Number of bookies to use for a topic, default: 2
Bookkeeper-write-quorum: How many writes to make of each entry, default: 2
Ml-mark-delete-max-rate: Throttling rate of mark-delete operation (0 means no throttle), default: 0
<Tabs groupId="api-choice" defaultValue="pulsar-admin" values={[{"label":"pulsar-admin","value":"pulsar-admin"},{"label":"REST API","value":"REST API"},{"label":"Java","value":"Java"}]}> <TabItem value="pulsar-admin"> ```shell pulsar-admin namespaces set-persistence \ --bookkeeper-ack-quorum 2 --bookkeeper-ensemble 3 \ --bookkeeper-write-quorum 2 --ml-mark-delete-max-rate 0 \ test-tenant/namespace1 ``` </TabItem> <TabItem value="REST API"> [](swagger:/admin/v2/Namespaces_setPersistence) </TabItem> <TabItem value="Java"> ```java admin.namespaces().setPersistence(namespace,new PersistencePolicies(bookkeeperEnsemble, bookkeeperWriteQuorum,bookkeeperAckQuorum,managedLedgerMaxMarkDeleteRate)) ``` </TabItem> </Tabs>
You can get the configured persistence policies of a given namespace.
<Tabs groupId="api-choice" defaultValue="pulsar-admin" values={[{"label":"pulsar-admin","value":"pulsar-admin"},{"label":"REST API","value":"REST API"},{"label":"Java","value":"Java"}]}> <TabItem value="pulsar-admin"> ```shell pulsar-admin namespaces get-persistence test-tenant/namespace1 ``` Example output: ```json { "bookkeeperEnsemble": 3, "bookkeeperWriteQuorum": 2, "bookkeeperAckQuorum": 2, "managedLedgerMaxMarkDeleteRate": 0 } ``` </TabItem> <TabItem value="REST API"> [](swagger:/admin/v2/Namespaces_getPersistence) </TabItem> <TabItem value="Java"> ```java admin.namespaces().getPersistence(namespace) ``` </TabItem> </Tabs>
A namespace bundle is a virtual group of topics that belong to the same namespace. If the broker gets overloaded with the number of bundles, this command can help unload a bundle from that broker, so it can be served by some other less-loaded brokers. The namespace bundle ID ranges from 0x00000000 to 0xffffffff.
<Tabs groupId="api-choice" defaultValue="pulsar-admin" values={[{"label":"pulsar-admin","value":"pulsar-admin"},{"label":"REST API","value":"REST API"},{"label":"Java","value":"Java"}]}> <TabItem value="pulsar-admin"> ```shell pulsar-admin namespaces unload --bundle 0x00000000_0xffffffff test-tenant/namespace1 pulsar-admin namespaces unload --bundle 0x00000000_0xffffffff test-tenant/namespace1 pulsar-admin namespaces unload --bundle 0x00000000_0xffffffff --destinationBroker broker1.use.org.com:8080 test-tenant/namespace1 ``` </TabItem> <TabItem value="REST API"> [](swagger:/admin/v2/Namespaces_unloadNamespaceBundle) </TabItem> <TabItem value="Java"> ```java admin.namespaces().unloadNamespaceBundle(namespace, bundle) ``` </TabItem> </Tabs>
One namespace bundle can contain multiple topics but can be served by only one broker. If a single bundle is creating an excessive load on a broker, an admin can split the bundle using the command below, permitting one or more of the new bundles to be unloaded, thus balancing the load across the brokers.
<Tabs groupId="api-choice" defaultValue="pulsar-admin" values={[{"label":"pulsar-admin","value":"pulsar-admin"},{"label":"REST API","value":"REST API"},{"label":"Java","value":"Java"}]}> <TabItem value="pulsar-admin"> ```shell pulsar-admin namespaces split-bundle --bundle 0x00000000_0xffffffff test-tenant/namespace1 ``` </TabItem> <TabItem value="REST API"> [](swagger:/admin/v2/Namespaces_splitNamespaceBundle) </TabItem> <TabItem value="Java"> ```java admin.namespaces().splitNamespaceBundle(namespace, bundle, unloadSplitBundles, splitAlgorithmName) ``` </TabItem> </Tabs>
You can configure the time to live (in seconds) duration for messages. In the example below, the message-ttl is set as 100s.
<Tabs groupId="api-choice" defaultValue="pulsar-admin" values={[{"label":"pulsar-admin","value":"pulsar-admin"},{"label":"REST API","value":"REST API"},{"label":"Java","value":"Java"}]}> <TabItem value="pulsar-admin"> ```shell pulsar-admin namespaces set-message-ttl --messageTTL 100 test-tenant/namespace1 ``` </TabItem> <TabItem value="REST API"> [](swagger:/admin/v2/Namespaces_setNamespaceMessageTTL) </TabItem> <TabItem value="Java"> ```java admin.namespaces().setNamespaceMessageTTL(namespace, messageTTL) ``` </TabItem> </Tabs>
When the message-ttl for a namespace is set, you can use the command below to get the configured value. This example comtinues the example of the command set message-ttl, so the returned value is 100(s).
<Tabs groupId="api-choice" defaultValue="pulsar-admin" values={[{"label":"pulsar-admin","value":"pulsar-admin"},{"label":"REST API","value":"REST API"},{"label":"Java","value":"Java"}]}> <TabItem value="pulsar-admin"> ```shell pulsar-admin namespaces get-message-ttl test-tenant/namespace1 ``` Example output: ``` 100 ``` </TabItem> <TabItem value="REST API"> [](swagger:/admin/v2/Namespaces_getNamespaceMessageTTL) </TabItem> <TabItem value="Java"> ```java admin.namespaces().getNamespaceMessageTTL(namespace) ``` ``` 100 ``` </TabItem> </Tabs>
Remove a message TTL of the configured namespace.
<Tabs groupId="api-choice" defaultValue="pulsar-admin" values={[{"label":"pulsar-admin","value":"pulsar-admin"},{"label":"REST API","value":"REST API"},{"label":"Java","value":"Java"}]}> <TabItem value="pulsar-admin"> ```shell pulsar-admin namespaces remove-message-ttl test-tenant/namespace1 ``` </TabItem> <TabItem value="REST API"> [](swagger:/admin/v2/Namespaces_removeNamespaceMessageTTL) </TabItem> <TabItem value="Java"> ```java admin.namespaces().removeNamespaceMessageTTL(namespace) ``` </TabItem> </Tabs>
It clears all message backlogs for all the topics that belong to a specific namespace. You can also clear backlogs for a specific subscription as well.
<Tabs groupId="api-choice" defaultValue="pulsar-admin" values={[{"label":"pulsar-admin","value":"pulsar-admin"},{"label":"REST API","value":"REST API"},{"label":"Java","value":"Java"}]}> <TabItem value="pulsar-admin"> ```shell pulsar-admin namespaces clear-backlog --sub my-subscription test-tenant/namespace1 ``` </TabItem> <TabItem value="REST API"> [](swagger:/admin/v2/Namespaces_clearNamespaceBacklogForSubscription) </TabItem> <TabItem value="Java"> ```java admin.namespaces().clearNamespaceBacklogForSubscription(namespace, subscription) ``` </TabItem> </Tabs>
It clears all message backlogs for all the topics that belong to a specific NamespaceBundle. You can also clear backlogs for a specific subscription as well.
<Tabs groupId="api-choice" defaultValue="pulsar-admin" values={[{"label":"pulsar-admin","value":"pulsar-admin"},{"label":"REST API","value":"REST API"},{"label":"Java","value":"Java"}]}> <TabItem value="pulsar-admin"> ```shell pulsar-admin namespaces clear-backlog \ --bundle 0x00000000_0xffffffff \ --sub my-subscription \ test-tenant/namespace1 ``` </TabItem> <TabItem value="REST API"> [](swagger:/admin/v2/Namespaces_clearNamespaceBundleBacklogForSubscription) </TabItem> <TabItem value="Java"> ```java admin.namespaces().clearNamespaceBundleBacklogForSubscription(namespace, bundle, subscription) ``` </TabItem> </Tabs>
Each namespace contains multiple topics and the retention size (storage size) of each topic should not exceed a specific threshold or it should be stored for a certain period. This command helps configure the retention size and time of topics in a given namespace.
<Tabs groupId="api-choice" defaultValue="pulsar-admin" values={[{"label":"pulsar-admin","value":"pulsar-admin"},{"label":"REST API","value":"REST API"},{"label":"Java","value":"Java"}]}> <TabItem value="pulsar-admin"> ```shell pulsar-admin namespaces set-retention --size 100M --time 10m test-tenant/namespace1 ``` </TabItem> <TabItem value="REST API"> [](swagger:/admin/v2/Namespaces_setRetention) </TabItem> <TabItem value="Java"> ```java admin.namespaces().setRetention(namespace, new RetentionPolicies(retentionTimeInMin, retentionSizeInMB)) ``` </TabItem> </Tabs>
It shows the retention information of a given namespace.
<Tabs groupId="api-choice" defaultValue="pulsar-admin" values={[{"label":"pulsar-admin","value":"pulsar-admin"},{"label":"REST API","value":"REST API"},{"label":"Java","value":"Java"}]}> <TabItem value="pulsar-admin"> ```shell pulsar-admin namespaces get-retention test-tenant/namespace1 ``` ```json { "retentionTimeInMinutes": 10, "retentionSizeInMB": 100 } ``` </TabItem> <TabItem value="REST API"> [](swagger:/admin/v2/Namespaces_getRetention) </TabItem> <TabItem value="Java"> ```java admin.namespaces().getRetention(namespace) ``` </TabItem> </Tabs>
It sets the message dispatch rate for all the topics under a given namespace. The dispatch rate can be restricted by the number of messages per X seconds (msg-dispatch-rate) or by the number of message-bytes per X second (byte-dispatch-rate). The dispatch rate is in second and it can be configured with dispatch-rate-period. The default value of msg-dispatch-rate and byte-dispatch-rate is -1 which disables the throttling.
:::note
clusterDispatchRate nor topicDispatchRate is configured, dispatch throttling is disabled.topicDispatchRate is not configured, clusterDispatchRate takes effect.topicDispatchRate is configured, topicDispatchRate takes effect.:::
<Tabs groupId="api-choice" defaultValue="pulsar-admin" values={[{"label":"pulsar-admin","value":"pulsar-admin"},{"label":"REST API","value":"REST API"},{"label":"Java","value":"Java"}]}> <TabItem value="pulsar-admin"> ```shell pulsar-admin namespaces set-dispatch-rate test-tenant/namespace1 \ --msg-dispatch-rate 1000 \ --byte-dispatch-rate 1048576 \ --dispatch-rate-period 1 ``` </TabItem> <TabItem value="REST API"> [](swagger:/admin/v2/Namespaces_setDispatchRate) </TabItem> <TabItem value="Java"> ```java admin.namespaces().setDispatchRate(namespace, new DispatchRate(1000, 1048576, 1)) ``` </TabItem> </Tabs>
It shows the configured message-rate for the namespace (topics under this namespace can dispatch this many messages per second)
<Tabs groupId="api-choice" defaultValue="pulsar-admin" values={[{"label":"pulsar-admin","value":"pulsar-admin"},{"label":"REST API","value":"REST API"},{"label":"Java","value":"Java"}]}> <TabItem value="pulsar-admin"> ```shell pulsar-admin namespaces get-dispatch-rate test-tenant/namespace1 ``` Example output: ```json { "dispatchThrottlingRateInMsg" : 1000, "dispatchThrottlingRateInByte" : 1048576, "relativeToPublishRate" : false, "ratePeriodInSecond" : 1 } ``` </TabItem> <TabItem value="REST API"> [](swagger:/admin/v2/Namespaces_getDispatchRate) </TabItem> <TabItem value="Java"> ```java admin.namespaces().getDispatchRate(namespace) ``` </TabItem> </Tabs>
It sets the message dispatch rate for all the subscriptions of topics under a given namespace. The dispatch rate can be restricted by the number of messages per X seconds (msg-dispatch-rate) or by the number of message-bytes per X second (byte-dispatch-rate). The dispatch rate is in second and it can be configured with dispatch-rate-period. The default value of msg-dispatch-rate and byte-dispatch-rate is -1 which disables the throttling.
<Tabs groupId="api-choice" defaultValue="pulsar-admin" values={[{"label":"pulsar-admin","value":"pulsar-admin"},{"label":"REST API","value":"REST API"},{"label":"Java","value":"Java"}]}> <TabItem value="pulsar-admin"> ```shell pulsar-admin namespaces set-subscription-dispatch-rate test-tenant/namespace1 \ --msg-dispatch-rate 1000 \ --byte-dispatch-rate 1048576 \ --dispatch-rate-period 1 ``` </TabItem> <TabItem value="REST API"> [](swagger:/admin/v2/Namespaces_setSubscriptionDispatchRate) </TabItem> <TabItem value="Java"> ```java admin.namespaces().setSubscriptionDispatchRate(namespace, new DispatchRate(1000, 1048576, 1)) ``` </TabItem> </Tabs>
It shows the configured message-rate for the namespace (topics under this namespace can dispatch this many messages per second).
<Tabs groupId="api-choice" defaultValue="pulsar-admin" values={[{"label":"pulsar-admin","value":"pulsar-admin"},{"label":"REST API","value":"REST API"},{"label":"Java","value":"Java"}]}> <TabItem value="pulsar-admin"> ```shell pulsar-admin namespaces get-subscription-dispatch-rate test-tenant/namespace1 ``` Example output: ```json { "dispatchThrottlingRateInMsg" : 1000, "dispatchThrottlingRateInByte" : 1048576, "relativeToPublishRate" : false, "ratePeriodInSecond" : 1 } ``` </TabItem> <TabItem value="REST API"> [](swagger:/admin/v2/Namespaces_getSubscriptionDispatchRate) </TabItem> <TabItem value="Java"> ```java admin.namespaces().getSubscriptionDispatchRate(namespace) ``` </TabItem> </Tabs>
It sets the message dispatch rate for all the replicators between replication clusters under a given namespace. The dispatch rate can be restricted by the number of messages per X seconds (msg-dispatch-rate) or by the number of message-bytes per X second (byte-dispatch-rate). The dispatch rate is in second and it can be configured with dispatch-rate-period. The default value of msg-dispatch-rate and byte-dispatch-rate is -1 which disables the throttling.
<Tabs groupId="api-choice" defaultValue="pulsar-admin" values={[{"label":"pulsar-admin","value":"pulsar-admin"},{"label":"REST API","value":"REST API"},{"label":"Java","value":"Java"}]}> <TabItem value="pulsar-admin"> ```shell pulsar-admin namespaces set-replicator-dispatch-rate test-tenant/namespace1 \ --msg-dispatch-rate 1000 \ --byte-dispatch-rate 1048576 \ --dispatch-rate-period 1 ``` </TabItem> <TabItem value="REST API"> [](swagger:/admin/v2/Namespaces_setDispatchRate) </TabItem> <TabItem value="Java"> ```java admin.namespaces().setReplicatorDispatchRate(namespace, new DispatchRate(1000, 1048576, 1)) ``` </TabItem> </Tabs>
It shows the configured message-rate for the namespace (topics under this namespace can dispatch this many messages per second)
<Tabs groupId="api-choice" defaultValue="pulsar-admin" values={[{"label":"pulsar-admin","value":"pulsar-admin"},{"label":"REST API","value":"REST API"},{"label":"Java","value":"Java"}]}> <TabItem value="pulsar-admin"> ```shell pulsar-admin namespaces get-replicator-dispatch-rate test-tenant/namespace1 ``` ```json { "dispatchThrottlingRatePerTopicInMsg" : 1000, "dispatchThrottlingRatePerTopicInByte" : 1048576, "ratePeriodInSecond" : 1 } ``` </TabItem> <TabItem value="REST API"> [](swagger:/admin/v2/Namespaces_getDispatchRate) </TabItem> <TabItem value="Java"> ```java admin.namespaces().getReplicatorDispatchRate(namespace) ``` </TabItem> </Tabs>
It shows the configured deduplicationSnapshotInterval for a namespace (Each topic under the namespace will take a deduplication snapshot according to this interval)
<Tabs groupId="api-choice" defaultValue="pulsar-admin" values={[{"label":"pulsar-admin","value":"pulsar-admin"},{"label":"REST API","value":"REST API"},{"label":"Java","value":"Java"}]}> <TabItem value="pulsar-admin"> ```shell pulsar-admin namespaces get-deduplication-snapshot-interval test-tenant/namespace1 ``` </TabItem> <TabItem value="REST API"> [](swagger:/admin/v2/Namespaces_getDeduplicationSnapshotInterval) </TabItem> <TabItem value="Java"> ```java admin.namespaces().getDeduplicationSnapshotInterval(namespace) ``` </TabItem> </Tabs>
Set the configured deduplicationSnapshotInterval for a namespace. Each topic under the namespace will take a deduplication snapshot according to this interval. brokerDeduplicationEnabled must be set to true for this property to take effect.
<Tabs groupId="api-choice" defaultValue="pulsar-admin" values={[{"label":"pulsar-admin","value":"pulsar-admin"},{"label":"REST API","value":"REST API"},{"label":"Java","value":"Java"}]}> <TabItem value="pulsar-admin"> ```shell pulsar-admin namespaces set-deduplication-snapshot-interval test-tenant/namespace1 --interval 1000 ``` </TabItem> <TabItem value="REST API"> [](swagger:/admin/v2/Namespaces_setDeduplicationSnapshotInterval) </TabItem> <TabItem value="Java"> ```java admin.namespaces().setDeduplicationSnapshotInterval(namespace, 1000) ``` </TabItem> </Tabs>
Remove configured deduplicationSnapshotInterval of a namespace (Each topic under the namespace will take a deduplication snapshot according to this interval).
<Tabs groupId="api-choice" defaultValue="pulsar-admin" values={[{"label":"pulsar-admin","value":"pulsar-admin"},{"label":"REST API","value":"REST API"},{"label":"Java","value":"Java"}]}> <TabItem value="pulsar-admin"> ```shell pulsar-admin namespaces remove-deduplication-snapshot-interval test-tenant/namespace1 ``` </TabItem> <TabItem value="REST API"> [](swagger:/admin/v2/Namespaces_setDeduplicationSnapshotInterval) </TabItem> <TabItem value="Java"> ```java admin.namespaces().removeDeduplicationSnapshotInterval(namespace) ``` </TabItem> </Tabs>
You can use the Pulsar isolation policy to allocate resources (broker and bookie) for a namespace.
You can unload a namespace, or a namespace bundle, from the Pulsar broker that is currently responsible for it.
Use the unload subcommand of the namespaces command.
<Tabs groupId="api-choice" defaultValue="pulsar-admin" values={[{"label":"pulsar-admin","value":"pulsar-admin"},{"label":"REST API","value":"REST API"},{"label":"Java","value":"Java"}]}> <TabItem value="pulsar-admin"> ```shell pulsar-admin namespaces unload my-tenant/my-ns ``` </TabItem> <TabItem value="REST API"> [](swagger:/admin/v2/Namespaces_unloadNamespace) </TabItem> <TabItem value="Java"> ```java admin.namespaces().unload(namespace) ``` </TabItem> </Tabs>
Entry filter helps with filtering message on server side.
<Tabs groupId="api-choice" defaultValue="pulsar-admin" values={[{"label":"pulsar-admin","value":"pulsar-admin"},{"label":"REST API","value":"REST API"},{"label":"Java","value":"Java"}]}> <TabItem value="pulsar-admin"> ``` pulsar-admin namespaces set-entry-filters \ --desc "The description of the entry filter to be used for user help." \ --entry-filters-name "The class name for the entry filter." \ --entry-filters-dir "The directory for all the entry filter implementations." \ test-tenant/namespace1 ``` </TabItem> <TabItem value="REST API"> [](swagger:/admin/v2/Namespaces_setEntryFiltersPerTopic) </TabItem> <TabItem value="Java"> ```java admin.namespaces().setEntryFilters(namespace, new EntryFilters("desc", "classes name", "class files localtion")) ``` </TabItem> </Tabs>
You can get a configured entry filter for a given namespace.
<Tabs groupId="api-choice" defaultValue="pulsar-admin" values={[{"label":"pulsar-admin","value":"pulsar-admin"},{"label":"REST API","value":"REST API"},{"label":"Java","value":"Java"}]}> <TabItem value="pulsar-admin"> ```shell pulsar-admin namespaces get-entry-filters test-tenant/namespace1 ``` </TabItem> <TabItem value="REST API"> [](swagger:/admin/v2/Namespaces_getEntryFiltersPerTopic) </TabItem> <TabItem value="Java"> ```java admin.namespaces().getEntryFilters(namespace); ``` </TabItem> </Tabs>
You can remove entry filters policies for a given namespace.
<Tabs groupId="api-choice" defaultValue="pulsar-admin" values={[{"label":"pulsar-admin","value":"pulsar-admin"},{"label":"REST API","value":"REST API"},{"label":"Java","value":"Java"}]}> <TabItem value="pulsar-admin"> ```shell pulsar-admin namespaces remove-entry-filters test-tenant/namespace1 ``` </TabItem> <TabItem value="REST API"> [](swagger:/admin/v2/Namespaces_removeNamespaceEntryFilters) </TabItem> <TabItem value="Java"> ```java admin.namespaces().removeEntryFilters(namespace) ``` </TabItem> </Tabs>