Managing Brokers
Pulsar broker 由两个组件构成:
可以通过以下方式管理 broker:
pulsar-admin
工具的brokers
命令- Admin REST API 中的
/admin/v2/brokers
- Java API 中PulsarAdmin 对象的
brokers
方法
可以在启动时配置 broker,也可以动态配置 broker。
关于 broker 配置参数的完整列表,参阅配置页。
Broker 资源
获取活跃 broker 列表
使用以下命令获取正在运行的 broker 中所有可用的活跃 broker。
pulsar-admin
REST API
JAVA
$ pulsar-admin brokers list use
broker1.use.org.com:8080
GET /admin/v2/brokers/:cluster
admin.brokers().getActiveBrokers(clusterName)
获取 leader broker 信息
获取 leader broker 的相关信息,如服务器 url。
pulsar-admin
REST API
JAVA
$ pulsar-admin brokers leader-broker
BrokerInfo(serviceUrl=broker1.use.org.com:8080)
GET /admin/v2/brokers/leaderBroker?version=2.8.0
admin.brokers().getLeaderBroker()
关于以上代码的详细信息,参阅这里。
列出给定Broker所拥有的命名空间列表
找到所有给定broker拥有和服务的的命名空间。
pulsar-admin
REST API
JAVA
$ pulsar-admin brokers namespaces use \ --url broker1.use.org.com:8080
{ "my-property/use/my-ns/0x00000000_0xffffffff": { "broker_assignment": "shared", "is_controlled": false, "is_active": true }}
GET /admin/v2/brokers/:cluster/:broker/ownedNamespaces
admin.brokers().getOwnedNamespaces(cluster,brokerUrl);
动态Broker配置
配置Pulsar broker的一种方式是,在broker启动时给出配置。
But since all broker configuration in Pulsar is stored in ZooKeeper, configuration values can also be dynamically updated while the broker is running. 当动态更新broker的值,ZooKeeper将会把变化通知到broker,broker将会覆盖所有现有的配置值。
pulsar-admin
工具的brokers
命令有很多子命令,你可以使用这些子命令动态配置 broker,比如更新配置值等。- 在 Pulsar admin REST API 中,可以通过
/admin/v2/brokers/configuration
端点管理动态配置。
更新动态配置
pulsar-admin
REST API
JAVA
update-dynamic-config
子命令用来更新现有配置。 It takes two arguments: the name of the parameter and the new value using the config
and value
flag respectively. 下面是关于brokerShutdownTimeoutMs
参数的例子:
$ pulsar-admin brokers update-dynamic-config --config brokerShutdownTimeoutMs --value 100
POST /admin/v2/brokers/configuration/:configName/:configValue
admin.brokers().updateDynamicConfiguration(configName, configValue);
列出更新的值
Fetch a list of all potentially updatable configuration parameters.
pulsar-admin
REST API
JAVA
$ pulsar-admin brokers list-dynamic-configbrokerShutdownTimeoutMs
GET /admin/v2/brokers/configuration
admin.brokers().getDynamicConfigurationNames();
列出所有
列出所有已经被动态更新的参数列表。
pulsar-admin
REST API
JAVA
$ pulsar-admin brokers get-all-dynamic-configbrokerShutdownTimeoutMs:100
GET /admin/v2/brokers/configuration/values
admin.brokers().getAllDynamicConfigurations();