Managing Clusters
重要
此页面仅显示 部分常用操作。
有关
Pulsar admin
的最新完整信息,包括命令、标志、描述和更多信息,详见 Pulsar admin doc。关于
REST API
最新最完整的信息,包括参数、响应、示例等等,可参阅 REST API 文档。有关
Java admin API
的最新完整信息,包括类、方法、描述等,请参阅 Java admin API 文档。
Pulsar 集群包括了一个或多个的 Pulsar broker、BookKeeper 服务器(即 bookie),以及一个提供配置和协调管理功能的 ZooKeeper 集群。
管理集群的方式有以下几种:
- pulsar-admin 工具的 clusters 命令
- Admin REST API 的
/admin/v2/clusters
端点 - Java API 中 PulsarAdmin 对象的
clusters
方法
集群资源
准备新集群
可以通过 admin 接口提供新集群。
注意:超级用户才有权限进行此操作
pulsar-admin
REST API
JAVA
You can provision a new cluster using the create subcommand. 下面是一个示例:
$ pulsar-admin clusters create cluster-1 \ --url http://my-cluster.org.com:8080 \ --broker-url pulsar://my-cluster.org.com:6650
PUT /admin/v2/clusters/:cluster
ClusterData clusterData = new ClusterData( serviceUrl, serviceUrlTls, brokerServiceUrl, brokerServiceUrlTls);admin.clusters().createCluster(clusterName, clusterData);
初始化集群元数据
在准备新集群时,需要初始化集群的元数据。 初始化集群元数据需要指定以下内容:
- 集群名称
- 集群与本地 ZooKeeper 连接的字符串
- 整个集群实例的配置存储连接字符串。
- 集群 web 服务的 URL
- Broker 服务的 URL,用于启动集群中 broker 之间的交互
You must initialize cluster metadata before starting up any brokers that will belong to the cluster.
不能通过 REST API 或者 Java admin API 初始化集群元数据。
与 Pulsar 的其他管理功能不同的是,不能通过 admin REST API 或 admin Java 客户端初始化集群元数据。 但是可以使用 pulsar CLI 执行 initialize-cluster-metadata命令。
集群元数据初始化命令示例如下:
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/
在实例中使用 TLS 认证 时,只需使用 --*-tls
参数。
获取配置
你可以随时获取现有集群的配置。
pulsar-admin
REST API
JAVA
Use the get subcommand and specify the name of the cluster. 下面是一个示例:
$ 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}
GET /admin/v2/clusters/:cluster
admin.clusters().getCluster(clusterName);
更新
你可以随时更新现有集群的配置。
pulsar-admin
REST API
JAVA
使用 update 子命令并使用参数指定新配置值。
$ pulsar-admin clusters update cluster-1 \ --url http://my-cluster.org.com:4081 \ --broker-url pulsar://my-cluster.org.com:3350
POST /admin/v2/clusters/:cluster
ClusterData clusterData = new ClusterData( serviceUrl, serviceUrlTls, brokerServiceUrl, brokerServiceUrlTls);admin.clusters().updateCluster(clusterName, clusterData);
删除
可以从 Pulsar 实例中删除集群。
pulsar-admin
REST API
JAVA
使用 delete 子命令并指定集群名称。
$ pulsar-admin clusters delete cluster-1
DELETE /admin/v2/clusters/:cluster
admin.clusters().deleteCluster(clusterName);
获取资源列表
可以获取 Pulsar 实例中的所有集群。
pulsar-admin
REST API
JAVA
使用 list 子命令。
$ pulsar-admin clusters listcluster-1cluster-2
admin.clusters().getClusters();
更新对等集群(peer-cluster)数据
在 Pulsar 实例中,可以为给定集群配置 peer-cluster。
pulsar-admin
REST API
JAVA
使用update-peer-clusters子命令并指定对等集群的名称。
$ pulsar-admin update-peer-clusters cluster-1 --peer-clusters cluster-2
POST /admin/v2/clusters/:cluster/peers
admin.clusters().updatePeerClusterNames(clusterName, peerClusterList);