The Pulsar admin interface
Pulsar管理接口允许你管理一个Pulsar实例的所有重要实体,比如tenants,topics,和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 handle307 Temporary Redirect
. If you are usingcurl
, you should specify-L
to handle redirections. pulsar-admin
CLI工具,它在Pulsar安装目录的bin
文件夹中:
$ bin/pulsar-admin
这个工具的完整文档你可以在Pulsar 命令行工具中找到。
- Java客户端接口。
REST API是管理接口
实际上,
pulsar-admin
CLI工具和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.6.3/reference-configuration#client)文件中。 以下是可用参数:``
配置项 | Description | 默认值 |
---|---|---|
webServiceUrl | 群集的 web URL。 | http://localhost:8080/ |
brokerServiceUrl | 集群的Pulsar 协议地址。 | pulsar://localhost:6650/ |
authPlugin | 身份认证插件。 | |
authParams | 群集的身份认证参数, 逗号分隔的字符串。 | |
useTls | 是否在群集中强制执行 TLS 验证。 | false |
tlsAllowInsecureConnection | 从客户端接受不受信任的 TLS 证书。 | false |
tlsTrustCertsFilePath | 受信任的 TLS 证书文件的路径。 |
您可以在此document 参考文档中找到Pulsar broker暴露的REST API的文档。
Java 管理客户端
要使用 Java 管理 API,需实例化一个 PulsarAdmin 对象,为 Pulsar broker 和 ClientConfiguration 指定一个URL。 下面是一个使用 localhost
的最小示例:
String url = "http://localhost:8080";
// 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();
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();
``