Managing Clusters
Les clusters Pulsar sont constitués de un ou plusieur brokers Pulsar, un ou plusieur serveurs BookKeeper (alias bookies), et un cluster ZooKeeper qui assure la gestion de la configuration et de la coordination.
Les cluster peuvent être gérés via:
- La commande
clusters
de l'outilpulsar-admin
- Le point de terminaison
/admin/v2/clusters
de l'API d'administration REST - TLa méthode
clusters
de l'objet PulsarAdmin dans l'API Java
Ressources des clusters
Provisionnement
De nouveaux clusters peuvent être provisionnés en utilisant l'interface d'administration.
Veuillez noter que cette opération nécessite des privilèges superutilisateur.
pulsar-admin
Vous pouvez fournir un nouveau cluster en utilisant la sous-commande créer
. Voici un exemple :
$ pulsar-admin cluster create cluster-1 \
--url http://my-cluster.org.com:8080 \
--broker-url pulsar://my-cluster.org.com:6650
REST API
GET /admin/v2/brokers/:cluster
Java
ClusterData clusterData = new ClusterData(
serviceUrl,
serviceUrlTls,
brokerServiceUrl,
brokerServiceUrlTls
);
admin.clusters().createCluster(clusterName, clusterData);
Initialiser les métadonnées du cluster
Lorsque vous provisionnez un nouveau cluster, vous devez initialiser les métadonnées de ce cluster . Lors de l'initialisation des métadonnées du cluster, vous devez spécifier toutes les données suivantes :
- Le nom du cluster
- La chaîne de connexion ZooKeeper locale pour le cluster
- The configuration store connection string for the entire instance
- URL du service web pour le cluster
- URL de service du broker permettant une interaction avec les brokers du cluster
Vous devez initialiser les métadonnées du cluster avent de démarrer tous les brokers qui seront liés au cluster.
Aucune initialisation des métadonnées du cluster via l'API REST ou l'API d'administration Java
Contrairement à la plupart des autres fonctions d'administration de Pulsar, l'initialisation des métadonnées de cluster ne peut pas être effectuée via l'API REST admin ou le client Java admin, car l'initialisation des métadonnées implique la communication directer avec ZooKeeper. Au lieu de cela, vous pouvez utiliser l'outil
pulsar
CLI, en particulier la commandeinitialiser-cluster-metadata
.
Voici une commande d'initialisation des métadonnées de cluster par exemple :
bin/pulsar initialize-cluster-metadata \
--cluster us-west \
--zookeeper zk1.us-west.example.com:2181 \
--configuration-store zk1.us-west.example.com:2184 \
--web-service-url http://pulsar.us-west.example.com:8080/ \
--web-service-url-tls https://pulsar.us-west.example.com:8443/ \
--broker-service-url pulsar://pulsar.us-west.example.com:6650/ \
--broker-service-url-tls pulsar+ssl://pulsar.us-west.example.com:6651/
Vous devrez utiliser les drapeaux --*-tls
uniquement si vous utilisez l'authentification TLS dans votre instance.
Get configuration
Vous pouvez récupérer la configuration pour un cluster existant à tout moment.
pulsar-admin
Utilisez la sous-commande obtenir
et spécifiez le nom du cluster. Voici un exemple :
$ pulsar-admin clusters get cluster-1
{
"serviceUrl": "http://my-cluster.org.com:8080/",
"serviceUrlTls": null,
"brokerServiceUrl": "pulsar://my-cluster.org.com:6650/",
"brokerServiceUrlTls": null
"peerClusterNames": null
}
REST API
GET /admin/v2/clusters/:cluster
Java
admin.clusters().getCluster(clusterName);
Mise à jour
Vous pouvez récupérer la configuration pour un cluster existant à tout moment.
pulsar-admin
Utilisez la sous-commande update
et spécifiez de nouvelles valeurs de configuration en utilisant des drapeaux.
$ pulsar-admin clusters update cluster-1 \
--url http://my-cluster.org.com:4081 \
--broker-url pulsar://my-cluster.org.com:3350
REST
POST /admin/v2/clusters/:cluster
Java
ClusterData clusterData = new ClusterData(
serviceUrl,
serviceUrlTls,
brokerServiceUrl,
brokerServiceUrlTls
);
admin.clusters().updateCluster(clusterName, clusterData);
Delete
Les Clusters peuvent être supprimés d'une instance Pulsar.
pulsar-admin
Utilisez la sous-commande delete
et spécifiez le nom du cluster. Voici un exemple:
$ pulsar-admin clusters delete cluster-1
REST API
DELETE /admin/v2/clusters/:cluster
Java
admin.clusters().deleteCluster(clusterName);
List
Vous pouvez récupérer une liste de tous les clusters dans une instance de Pulsar.
pulsar-admin
Utilisez la sous-commande liste
.
$ pulsar-admin clusters list
cluster-1
cluster-2
REST API
Java
admin.clusters().getClusters();
Mettre à jour les données du cluster pair
Les clusters pairs peuvent être configurés pour un cluster donné dans une instance de Pulsar.
pulsar-admin
Utilisez la sous-commande update-peer-clusters
et spécifiez la liste des noms de cluster pairs.
$ pulsar-admin update-peer-clusters cluster-1 --peer-clusters cluster-2
REST API
POST /admin/v2/clusters/:cluster/peers
Java
admin.clusters().updatePeerClusterNames(clusterName, peerClusterList);