Key | Default | Type | Description
--- | --- | --- | ---
##### pulsar.client.authParamMap | (none) | Map | Parameters for the authentication plugin.
##### pulsar.client.authParams | (none) | String | Parameters for the authentication plugin. Example: `key1:val1,key2:val2`
##### pulsar.client.authPluginClassName | (none) | String | Name of the authentication plugin.
##### pulsar.client.concurrentLookupRequest | 5000 | Integer | The number of concurrent lookup requests allowed to send on each broker connection to prevent overload on the broker. It should be configured with a higher value only in case of it requires to produce or subscribe on thousands of topic using a created `PulsarClient`
##### pulsar.client.connectionMaxIdleSeconds | 180 | Integer | Release the connection if it is not used for more than [connectionMaxIdleSeconds] seconds. If [connectionMaxIdleSeconds] < 0, disabled the feature that auto release the idle connections
##### pulsar.client.connectionTimeoutMs | 10000 | Integer | Duration (in ms) of waiting for a connection to a broker to be established. If the duration passes without a response from a broker, the connection attempt is dropped.
##### pulsar.client.connectionsPerBroker | 1 | Integer | The maximum number of connections that the client library will open to a single broker. By default, the connection pool will use a single connection for all the producers and consumers. Increasing this parameter may improve throughput when using many producers over a high latency connection.
##### pulsar.client.dnsLookupBindAddress | (none) | String | The Pulsar client dns lookup bind address, default behavior is bind on `0.0.0.0:0` The default port is `0` which means random port. The max allowed port is `65535`. The bind address should in `host:port` format.
##### pulsar.client.enableBusyWait | false | Boolean | Option to enable busy-wait settings. This option will enable spin-waiting on executors and IO threads in order to reduce latency during context switches. The spinning will consume 100% CPU even when the broker is not doing any work. It is recommended to reduce the number of IO threads and BookKeeper client threads to only have fewer CPU cores busy.
##### pulsar.client.enableTransaction | false | Boolean | If transaction is enabled, start the `transactionCoordinatorClient` with `PulsarClient`.
##### pulsar.client.initialBackoffIntervalNanos | 100000000 | Long | Default duration (in nanoseconds) for a backoff interval.
##### pulsar.client.keepAliveIntervalSeconds | 30 | Integer | Interval (in seconds) for keeping connection between the Pulsar client and broker alive.
##### pulsar.client.listenerName | (none) | String | Configure the `listenerName` that the broker will return the corresponding `advertisedListener`.
##### pulsar.client.lookupTimeoutMs | -1 | Integer | Client lookup timeout (in milliseconds). Lookup operations have a different load pattern to other operations. They can be handled by any broker, are not proportional to throughput, and are harmless to retry. Given this, it makes sense to allow them to retry longer than normal operation, especially if they experience a timeout. By default, this is set to match operation timeout. This is to maintain legacy behaviour. However, in practice it should be set to 5-10x the operation timeout.
##### pulsar.client.maxBackoffIntervalNanos | 60000000000 | Long | The maximum duration (in nanoseconds) for a backoff interval.
##### pulsar.client.maxLookupRedirects | 20 | Integer | The maximum number of times a lookup-request redirections to a broker.
##### pulsar.client.maxLookupRequest | 50000 | Integer | The maximum number of lookup requests allowed on each broker connection to prevent overload on the broker. It should be greater than `pulsar.client.concurrentLookupRequest`. Requests that inside `pulsar.client.concurrentLookupRequest` are already sent to broker, and requests beyond `pulsar.client.concurrentLookupRequest` and under `maxLookupRequests` will wait in each client cnx.
##### pulsar.client.maxNumberOfRejectedRequestPerConnection | 50 | Integer | The maximum number of rejected requests of a broker in a certain period (30s) after the current connection is closed and the client creates a new connection to connect to a different broker.
##### pulsar.client.memoryLimitBytes | 67108864 | Long | The limit (in bytes) on the amount of direct memory that will be allocated by this client instance. Setting this to `0` will disable the limit.
##### pulsar.client.numIoThreads | 1 | Integer | The number of threads used for handling connections to brokers.
##### pulsar.client.numListenerThreads | 1 | Integer | The number of threads used for handling message listeners. The listener thread pool is shared across all the consumers and readers that are using a `listener` model to get messages. For a given consumer, the listener is always invoked from the same thread to ensure ordering.
##### pulsar.client.operationTimeoutMs | 30000 | Integer | Operation timeout (in ms). Operations such as creating producers, subscribing or unsubscribing topics are retried during this interval. If the operation is not completed during this interval, the operation will be marked as failed.
##### pulsar.client.proxyProtocol | SNI | Enum | Protocol type to determine the type of proxy routing when a client connects to the proxy using `pulsar.client.proxyServiceUrl`. Possible values: "SNI"
##### pulsar.client.proxyServiceUrl | (none) | String | Proxy-service URL when a client connects to the broker via the proxy. The client can choose the type of proxy-routing.
##### pulsar.client.requestTimeoutMs | 60000 | Integer | Maximum duration (in ms) for completing a request. This config option is not supported before Pulsar 2.8.1
##### pulsar.client.serviceUrl | (none) | String | Service URL provider for Pulsar service. To connect to Pulsar using client libraries, you need to specify a Pulsar protocol URL. You can assign Pulsar protocol URLs to specific clusters and use the Pulsar scheme. This is an example of `localhost`: `pulsar://localhost:6650`. If you have multiple brokers, the URL is as: `pulsar://localhost:6550,localhost:6651,localhost:6652` A URL for a production Pulsar cluster is as: `pulsar://pulsar.us-west.example.com:6650` If you use TLS authentication, the URL is as `pulsar+ssl://pulsar.us-west.example.com:6651`
##### pulsar.client.socks5ProxyAddress | (none) | String | Address of SOCKS5 proxy. It should in `host:port` format.
##### pulsar.client.socks5ProxyPassword | (none) | String | Password of SOCKS5 proxy.
##### pulsar.client.socks5ProxyUsername | (none) | String | User name of SOCKS5 proxy.
##### pulsar.client.sslProvider | (none) | String | The name of the security provider used for SSL connections. The default value is the default security provider of the JVM.
##### pulsar.client.statsIntervalSeconds | 60 | Long | Interval between each stats info. Stats is activated with positive `statsInterval` Set `statsIntervalSeconds` to 1 second at least.
##### pulsar.client.tlsAllowInsecureConnection | false | Boolean | Whether the Pulsar client accepts untrusted TLS certificate from the broker.
##### pulsar.client.tlsCertificateFilePath | (none) | String | Path to the TLS certificate file.
##### pulsar.client.tlsCiphers |  | List<String> | A list of cipher suites. This is a named combination of authentication, encryption, MAC and the key exchange algorithm used to negotiate the security settings for a network connection using the TLS or SSL network protocol. By default all the available cipher suites are supported.
##### pulsar.client.tlsHostnameVerificationEnable | false | Boolean | Whether to enable TLS hostname verification. It allows to validate hostname verification when a client connects to the broker over TLS. It validates incoming x509 certificate and matches provided hostname (CN/SAN) with the expected broker's host name. It follows RFC 2818, 3.1. Server Identity hostname verification.
##### pulsar.client.tlsKeyFilePath | (none) | String | Path to the TLS key file.
##### pulsar.client.tlsKeyStorePassword | (none) | String | The store password for the key store file.
##### pulsar.client.tlsKeyStorePath | (none) | String | The location of the key store file.
##### pulsar.client.tlsKeyStoreType | "JKS" | String | The file format of the key store file.
##### pulsar.client.tlsProtocols |  | List<String> | The SSL protocol used to generate the SSLContext. By default, it is set TLS, which is fine for most cases. Allowed values in recent JVMs are TLS, TLSv1.3, TLSv1.2 and TLSv1.1.
##### pulsar.client.tlsTrustCertsFilePath | (none) | String | Path to the trusted TLS certificate file.
##### pulsar.client.tlsTrustStorePassword | (none) | String | The store password for the key store file.
##### pulsar.client.tlsTrustStorePath | (none) | String | The location of the trust store file.
##### pulsar.client.tlsTrustStoreType | "JKS" | String | The file format of the trust store file.
##### pulsar.client.useKeyStoreTls | false | Boolean | If TLS is enabled, whether use the KeyStore type as the TLS configuration parameter. If it is set to `false`, it means to use the default pem type configuration.
##### pulsar.client.useTcpNoDelay | true | Boolean | Whether to use the TCP no-delay flag on the connection to disable Nagle algorithm. No-delay features ensures that packets are sent out on the network as soon as possible, and it is critical to achieve low latency publishes. On the other hand, sending out a huge number of small packets might limit the overall throughput. Therefore, if latency is not a concern, it is recommended to set this option to `false`. By default, it is set to `true`.