Pulsar管理接口允许你管理一个Pulsar实例的所有重要实体,比如tenantstopics,和namespaces

目前你可以通过以下方式使用管理接口:

  • 使用HTTP调用Pulsar broker提供的管理 REST API。 For some restful apis, they might be redirected to topic owner brokers for serving with 307 Temporary Redirect, hence the HTTP callers should handle 307 Temporary Redirect. If you are using curl, you should specify -L to handle redirections.
  • pulsar-admin CLI工具,它在Pulsar安装目录的bin文件夹中:
  1. $ bin/pulsar-admin

这个工具的完整文档你可以在Pulsar 命令行工具中找到。

  • Java客户端接口。

REST API是管理接口

实际上,pulsar-adminCLI工具和Java客户端都是用 REST API。 如果你想实现自己的管理接口客户端,你也应该使用REST API。 文档可以在下方找到:

在本文档中,将展示三个可用接口中的每一个的示例。

管理设置

Pulsar的三种接口REST [`pulsar-admin<0>CLI工具,java管理API,REST API 中的每一种—-需要一些特殊的设置,如果你在Pulsar 实例中开启了身份认证

pulsar-admin

如果启用了 身份验证, 则需要提供一个授权配置以使用 `pulsar-admin 工具。 默认情况下,pulsar-admin的配置文件在conf/client.conf](/docs/zh-CN/2.5.2/reference-configuration#client)文件中。 以下是可用参数:``

NameDescription默认值
webServiceUrl群集的 web URL。http://localhost:8080/
brokerServiceUrl集群的Pulsar 协议地址。pulsar://localhost:6650/
authPlugin身份认证插件。
authParams群集的身份认证参数, 逗号分隔的字符串。
useTls是否在群集中强制执行 TLS 验证。false
tlsAllowInsecureConnection从客户端接受不受信任的 TLS 证书。false
tlsTrustCertsFilePath受信任的 TLS 证书文件的路径。

``### REST API

您可以在此document 参考文档中找到Pulsar broker暴露的REST API的文档。

Java 管理客户端

要使用 Java 管理 API,需实例化一个 PulsarAdmin 对象,为 Pulsar brokerClientConfiguration 指定一个URL。 下面是一个使用 localhost 的最小示例:

  1. String url = "http://localhost:8080";
  2. // Pass auth-plugin class fully-qualified name if Pulsar-security enabled
  3. String authPluginClassName = "com.org.MyAuthPluginClass";
  4. // Pass auth-param if auth-plugin class requires it
  5. String authParams = "param1=value1";
  6. boolean useTls = false;
  7. boolean tlsAllowInsecureConnection = false;
  8. String tlsTrustCertsFilePath = null;
  9. PulsarAdmin admin = PulsarAdmin.builder()
  10. .authentication(authPluginClassName,authParams)
  11. .serviceHttpUrl(url)
  12. .tlsTrustCertsFilePath(tlsTrustCertsFilePath)
  13. .allowTlsInsecureConnection(tlsAllowInsecureConnection)
  14. .build();

If you have multiple brokers to use, you can use multi-host like Pulsar service. For example,

String url = "http://localhost:8080,localhost:8081,localhost:8082"; // Pass auth-plugin class fully-qualified name if Pulsar-security enabled String authPluginClassName = "com.org.MyAuthPluginClass"; // Pass auth-param if auth-plugin class requires it String authParams = "param1=value1"; boolean useTls = false; boolean tlsAllowInsecureConnection = false; String tlsTrustCertsFilePath = null; PulsarAdmin admin = PulsarAdmin.builder() .authentication(authPluginClassName,authParams) .serviceHttpUrl(url) .tlsTrustCertsFilePath(tlsTrustCertsFilePath) .allowTlsInsecureConnection(tlsAllowInsecureConnection) .build(); ``