Managing Clusters

Clusters - 图1tip

This page only shows some frequently used operations. For the latest and complete information, see the reference docs below.

CategoryMethodIf you want to manage clusters…
Pulsar CLIpulsar-admin, which lists all commands, flags, descriptions, and more.See the clusters command
Pulsar admin APIsREST API, which lists all parameters, responses, samples, and more.See the /admin/v2/clusters endpoint
Pulsar admin APIsJava admin API, which lists all classes, methods, descriptions, and more.See the clusters method of the PulsarAdmin object

You can perform the following operations on clusters.

Provision cluster

You can provision new clusters using the admin interface.

Clusters - 图2note

  • This operation requires superuser privileges.

  • When provisioning a new cluster, you need to initialize cluster metadata. Cluster metadata can be initialized through the pulsar-admin CLI only. It cannot be performed via Pulsar admin APIs (REST API and Java admin API).

  • pulsar-admin

  • REST API
  • Java

You can provision a new cluster using the create subcommand. Here’s an example:

  1. pulsar-admin clusters create cluster-1 \
  2. --url http://my-cluster.org.com:8080 \
  3. --broker-url pulsar://my-cluster.org.com:6650

PUT /admin/v2/clusters/{cluster}

  1. ClusterData clusterData = new ClusterData(
  2. serviceUrl,
  3. serviceUrlTls,
  4. brokerServiceUrl,
  5. brokerServiceUrlTls
  6. );
  7. admin.clusters().createCluster(clusterName, clusterData);

Get cluster configuration

You can fetch the configuration for an existing cluster at any time.

  • pulsar-admin
  • REST API
  • Java

Use the get subcommand and specify the name of the cluster. Here’s an example:

  1. pulsar-admin clusters get cluster-1

Output:

  1. {
  2. "serviceUrl": "http://my-cluster.org.com:8080/",
  3. "serviceUrlTls": null,
  4. "brokerServiceUrl": "pulsar://my-cluster.org.com:6650/",
  5. "brokerServiceUrlTls": null
  6. "peerClusterNames": null
  7. }

GET /admin/v2/clusters/{cluster}

  1. admin.clusters().getCluster(clusterName);

Update cluster

Update cluster configuration

You can update the configuration for an existing cluster at any time.

  • pulsar-admin
  • REST API
  • Java

Use the update subcommand and specify new configuration values using flags.

  1. pulsar-admin clusters update cluster-1 \
  2. --url http://my-cluster.org.com:4081 \
  3. --broker-url pulsar://my-cluster.org.com:3350

POST /admin/v2/clusters/{cluster}

  1. ClusterData clusterData = new ClusterData(
  2. serviceUrl,
  3. serviceUrlTls,
  4. brokerServiceUrl,
  5. brokerServiceUrlTls
  6. );
  7. admin.clusters().updateCluster(clusterName, clusterData);

Update peer-cluster data

Peer clusters can be configured for a given cluster in a Pulsar instance.

  • pulsar-admin
  • REST API
  • Java

Use the update-peer-clusters subcommand and specify the list of peer-cluster names.

  1. pulsar-admin update-peer-clusters cluster-1 --peer-clusters cluster-2

POST /admin/v2/clusters/{cluster}/peers

  1. admin.clusters().updatePeerClusterNames(clusterName, peerClusterList);

List cluster

You can fetch a list of all clusters in a Pulsar instance.

  • pulsar-admin
  • REST API
  • Java

Use the list subcommand.

  1. pulsar-admin clusters list

Output:

  1. cluster-1
  2. cluster-2

GET /admin/v2/clusters

  1. admin.clusters().getClusters();

Delete cluster

Clusters can be deleted from a Pulsar instance.

  • pulsar-admin
  • REST API
  • Java

Use the delete subcommand and specify the name of the cluster.

  1. pulsar-admin clusters delete cluster-1

DELETE /admin/v2/clusters/{cluster}

  1. admin.clusters().deleteCluster(clusterName);