Pulsar 的 broker 由两个组件构成:

  1. HTTP服务,暴露出REST 接口管理及topic查询
  2. 调度器,处理所有的Pulsar 消息传输。

Borker 可以通过以下方式管理:

除了在启动时候可配置外,borker还可以被动态配置

有关完整的broker配置参数列表,请参阅配置页。

Broker资源

列出活跃的broker

获取所有正在服务,可用的活跃broker。

pulsar-admin

  1. $ pulsar-admin brokers list use
  1. broker1.use.org.com:8080
REST

GET /admin/v2/brokers/:cluster

Java
  1. admin.brokers().getActiveBrokers(clusterName)

列出给定Broker所拥有的命名空间列表

找到所有给定broker拥有和服务的的命名空间。

CLI
  1. $ pulsar-admin brokers namespaces use \
  2. --url broker1.use.org.com:8080
  1. {
  2. "my-property/use/my-ns/0x00000000_0xffffffff": {
  3. "broker_assignment": "shared",
  4. "is_controlled": false,
  5. "is_active": true
  6. }
  7. }
REST

GET /admin/v2/brokers/:cluster/:broker/ownedNamespaces

Java
  1. 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

update-dynamic-config子命令用来更新现有配置。 It takes two arguments: the name of the parameter and the new value using the config and value flag respectively. 下面是关于brokerShutdownTimeoutMs参数的例子:

  1. $ pulsar-admin brokers update-dynamic-config --config brokerShutdownTimeoutMs --value 100

REST API

POST /admin/v2/brokers/configuration/:configName/:configValue

Java

  1. admin.brokers().updateDynamicConfiguration(configName, configValue);

列出更新的值

获取所有可能可更新的配置参数列表。

pulsar-admin

  1. $ pulsar-admin brokers list-dynamic-config
  2. brokerShutdownTimeoutMs

REST API

GET /admin/v2/brokers/configuration

Java

  1. admin.brokers().getDynamicConfigurationNames();

列出所有

列出所有已经被动态更新的参数列表。

pulsar-admin

  1. $ pulsar-admin brokers get-all-dynamic-config
  2. brokerShutdownTimeoutMs:100

REST API

GET /admin/v2/brokers/configuration/values

Java

  1. admin.brokers().getAllDynamicConfigurations();