This is an automated email from the ASF dual-hosted git repository.

mmerli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar.git


The following commit(s) were added to refs/heads/master by this push:
     new 9c9d210  Add producer configuration description for Java client (#5154)
9c9d210 is described below

commit 9c9d2101d20fe86186b74ade461fcf45ed35f5ab
Author: Anonymitaet <50226895+anonymit...@users.noreply.github.com>
AuthorDate: Wed Sep 11 00:09:11 2019 +0800

    Add producer configuration description for Java client (#5154)
---
 site2/docs/client-libraries-java.md | 38 ++++++++++++++++++++++++++++---------
 1 file changed, 29 insertions(+), 9 deletions(-)

diff --git a/site2/docs/client-libraries-java.md 
b/site2/docs/client-libraries-java.md
index ccee7f9..68029a8 100644
--- a/site2/docs/client-libraries-java.md
+++ b/site2/docs/client-libraries-java.md
@@ -74,7 +74,7 @@ If you're using [TLS](security-tls-authentication.md) 
authentication, the URL wi
 pulsar+ssl://pulsar.us-west.example.com:6651
 ```
 
-## Client configuration
+## Client 
 
 You can instantiate a {@inject: 
javadoc:PulsarClient:/client/org/apache/pulsar/client/api/PulsarClient} object 
using just a URL for the target Pulsar 
[cluster](reference-terminology.md#cluster), like this:
 
@@ -123,7 +123,7 @@ Check out the Javadoc for the {@inject: 
javadoc:PulsarClient:/client/org/apache/
 
 > In addition to client-level configuration, you can also apply 
 > [producer](#configuring-producers) and [consumer](#configuring-consumers) 
 > specific configuration, as you'll see in the sections below.
 
-## Producers
+## Producer
 
 In Pulsar, producers write messages to topics. Once you've instantiated a 
{@inject: 
javadoc:PulsarClient:/client/org/apache/pulsar/client/api/PulsarClient} object 
(as in the section [above](#client-configuration)), you can create a {@inject: 
javadoc:Producer:/client/org/apache/pulsar/client/api/Producer} for a specific 
Pulsar [topic](reference-terminology.md#topic).
 
@@ -162,9 +162,29 @@ stringProducer.send("My message");
 >    });
 > ```
 
-### Configuring producers
+### Configure producer
 
-If you instantiate a `Producer` object specifying only a topic name, as in the 
example above, the producer will use the default configuration. To use a 
non-default configuration, there's a variety of configurable parameters that 
you can set. 
+If you instantiate a `Producer` object specifying only a topic name, as in the 
example above, the producer uses the default configuration. 
+
+If you create a producer, you may use the `loadConf` configuration. Below are 
the available parameters used in `loadConf`.
+
+Type | Name| <div style="width:300px">Description</div>|  Default
+|---|---|---|---
+String|        `topicName`|    Topic name| null|
+String|`producerName`|Producer name| null
+long|`sendTimeoutMs`|Message send timeout in ms.<br/><br/>If a message is not 
acknowledged by a server before the `sendTimeout` expires, an error is 
triggered.|30000
+boolean|`blockIfQueueFull`|If set to `true`, when the outgoing message queue 
is full, the `Send` and `SendAsync` methods of producer block rather than 
failing and throwing errors. <br/><br>If set to `false`, when the outgoing 
message queue is full, the `Send` and `SendAsync` methods of producer fail and 
throw `ProducerQueueIsFullError` exceptions.<br/><br/>The size of the outgoing 
message queue is determined by the `MaxPendingMessages` parameter.|false
+int|`maxPendingMessages`|Maximum size of a queue holding pending 
messages.<br/><br/>For example, a message waiting to receive an acknowledgment 
from a [broker](reference-terminology.md#broker). <br/><br/>By default, when 
the queue is full, all calls to the `Send` and `SendAsync` methods fail 
**unless** `BlockIfQueueFull` is set to `true`.|1000
+int|`maxPendingMessagesAcrossPartitions`|Maximum number of pending messages 
across partitions. <br/><br/>This setting is used to lower the max pending 
messages for each partition ({@link #setMaxPendingMessages(int)}) if the total 
exceeds the configured value.|50000
+MessageRoutingMode|`messageRoutingMode`|Message routing logic for producers on 
[partitioned 
topics](concepts-architecture-overview.md#partitioned-topics).<br/><br/> This 
logic is applied only when no key is set on messages. <br/><br/>Below are the 
available options: <br/><br/><li>`pulsar.RoundRobinDistribution`: round 
robin<br/><br/> <li>`pulsar.UseSinglePartition`: publish all messages to a 
single partition<br/><br/><li>`pulsar.CustomPartition`: a custom partitioning 
scheme|`pulsar.Roun [...]
+HashingScheme|`hashingScheme`|Hashing function that determines the partition 
on which a particular message is published (**partitioned topics 
only**).<br/><br/>Below are the available options:<br/><br/><li> 
`pulsar.JavaStringHash`: the equivalent of `String.hashCode()` in 
Java<br/><br/><li> `pulsar.Murmur3_32Hash`: applies the 
[Murmur3](https://en.wikipedia.org/wiki/MurmurHash) hashing 
function<br/><br/><li>`pulsar.BoostHash`: applies the hashing function from 
C++'s [Boost](https://www.b [...]
+ProducerCryptoFailureAction|`cryptoFailureAction`|Producer should take action 
when encryption fails.<br/><br/><li>**FAIL**: if encryption fails, unencrypted 
messages fail to send.</li><br/><li> **SEND**: if encryption fails, unencrypted 
messages are sent. |`ProducerCryptoFailureAction.FAIL`
+long|`batchingMaxPublishDelayMicros`|Time period within which messages sent 
will be batched.|TimeUnit.MILLISECONDS.toMicros(1)
+int|batchingMaxMessages|Maximum number of messages permitted in a batch.|1000
+boolean|`batchingEnabled`|Enable batching of messages. |true
+CompressionType|`compressionType`|Message data compression type used by a 
producer. <br/><br/>Below are the available 
options:<li>[`LZ4`](https://github.com/lz4/lz4)<br/><li>[`ZLIB`](https://zlib.net/)<br/><li>[`ZSTD`](https://facebook.github.io/zstd/)<br/><li>[`SNAPPY`](https://google.github.io/snappy/)|
 No compression
+
+To use a non-default configuration, there's a variety of configurable 
parameters that you can set. 
 
 For a full listing, see the Javadoc for the {@inject: 
javadoc:ProducerBuilder:/client/org/apache/pulsar/client/api/ProducerBuilder} 
class. Here's an example:
 
@@ -195,7 +215,7 @@ 
producer.sendAsync("my-async-message".getBytes()).thenAccept(msgId -> {
 
 As you can see from the example above, async send operations return a 
{@inject: javadoc:MessageId:/client/org/apache/pulsar/client/api/MessageId} 
wrapped in a 
[`CompletableFuture`](http://www.baeldung.com/java-completablefuture).
 
-### Configuring messages
+### Configure messages
 
 In addition to a value, it's possible to set additional items on a given 
message:
 
@@ -211,7 +231,7 @@ producer.newMessage()
 As for the previous case, it's also possible to terminate the builder chain 
with `sendAsync()` and
 get a future returned.
 
-## Consumers
+## Consumer
 
 In Pulsar, consumers subscribe to topics and handle messages that producers 
publish to those topics. You can instantiate a new 
[consumer](reference-terminology.md#consumer) by first instantiating a 
{@inject: 
javadoc:PulsarClient:/client/org/apache/pulsar/client/api/PulsarClient} object 
and passing it a URL for a Pulsar broker (as [above](#client-configuration)).
 
@@ -245,7 +265,7 @@ while (true) {
 }
 ```
 
-### Configuring consumers
+### Configure consumer
 
 If you instantiate a `Consumer` object specifying only a topic and 
subscription name, as in the example above, the consumer will use the default 
configuration. 
 
@@ -551,7 +571,7 @@ consumer 2 will receive:
 >
 > If the message key is not specified, messages without key will be dispatched 
 > to one consumer in order by default.
 
-## Reader interface
+## Reader 
 
 With the [reader interface](concepts-clients.md#reader-interface), Pulsar 
clients can "manually position" themselves within a topic, reading all messages 
from a specified message onward. The Pulsar API for Java enables you to create  
{@inject: javadoc:Reader:/client/org/apache/pulsar/client/api/Reader} objects 
by specifying a topic, a {@inject: 
javadoc:MessageId:/client/org/apache/pulsar/client/api/MessageId}, and 
{@inject: javadoc:ReaderConfiguration:/client/org/apache/pulsar/client/api [...]
 
@@ -576,7 +596,7 @@ In the example above, a `Reader` object is instantiated for 
a specific topic and
 
 The code sample above shows pointing the `Reader` object to a specific message 
(by ID), but you can also use `MessageId.earliest` to point to the earliest 
available message on the topic of `MessageId.latest` to point to the most 
recent available message.
 
-## Schemas
+## Schema
 
 In Pulsar, all message data consists of byte arrays "under the hood." [Message 
schemas](concepts-schema-registry.md) enable you to use other types of data 
when constructing and handling messages (from simple types like strings to more 
complex, application-specific types). If you construct, say, a 
[producer](#producers) without specifying a schema, then the producer can only 
produce messages of type `byte[]`. Here's an example:
 

Reply via email to