Huanli-Meng commented on a change in pull request #17188:
URL: https://github.com/apache/flink/pull/17188#discussion_r705830866
##########
File path: docs/layouts/shortcodes/generated/pulsar_consumer_configuration.html
##########
@@ -0,0 +1,180 @@
+<table class="configuration table table-bordered">
+ <thead>
+ <tr>
+ <th class="text-left" style="width: 20%">Key</th>
+ <th class="text-left" style="width: 15%">Default</th>
+ <th class="text-left" style="width: 10%">Type</th>
+ <th class="text-left" style="width: 55%">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><h5>pulsar.consumer.ackReceiptEnabled</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>Ack will return receipt but does not mean that the message
will not be resent after get receipt.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.ackTimeoutMillis</h5></td>
+ <td style="word-wrap: break-word;">0</td>
+ <td>Long</td>
+ <td>Set the timeout (in ms) for unacknowledged messages, truncated
to the nearest millisecond. The timeout needs to be greater than 1 second.<br
/>By default, the acknowledge timeout is disabled and that means that messages
delivered to a consumer will not be re-delivered unless the consumer
crashes.<br />When enabling ack timeout, if a message is not acknowledged
within the specified timeout it will be re-delivered to the consumer (possibly
to a different consumer in case of a shared subscription).</td>
Review comment:
```suggestion
<td>The timeout (in ms) for unacknowledged messages, truncated
to the nearest millisecond. The timeout needs to be greater than 1 second.<br
/>By default, the acknowledge timeout is disabled and that means that messages
delivered to a consumer will not be re-delivered unless the consumer
crashes.<br />When acknowledgement timeout being enabled, if a message is not
acknowledged within the specified timeout, it will be re-delivered to the
consumer (possibly to a different consumer in case of a shared
subscription).</td>
```
##########
File path: docs/layouts/shortcodes/generated/pulsar_consumer_configuration.html
##########
@@ -0,0 +1,180 @@
+<table class="configuration table table-bordered">
+ <thead>
+ <tr>
+ <th class="text-left" style="width: 20%">Key</th>
+ <th class="text-left" style="width: 15%">Default</th>
+ <th class="text-left" style="width: 10%">Type</th>
+ <th class="text-left" style="width: 55%">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><h5>pulsar.consumer.ackReceiptEnabled</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>Ack will return receipt but does not mean that the message
will not be resent after get receipt.</td>
Review comment:
```suggestion
<td>Acknowledgement will return a receipt but this does not mean
that the message will not be resent after getting the receipt.</td>
```
##########
File path: docs/layouts/shortcodes/generated/pulsar_consumer_configuration.html
##########
@@ -0,0 +1,180 @@
+<table class="configuration table table-bordered">
+ <thead>
+ <tr>
+ <th class="text-left" style="width: 20%">Key</th>
+ <th class="text-left" style="width: 15%">Default</th>
+ <th class="text-left" style="width: 10%">Type</th>
+ <th class="text-left" style="width: 55%">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><h5>pulsar.consumer.ackReceiptEnabled</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>Ack will return receipt but does not mean that the message
will not be resent after get receipt.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.ackTimeoutMillis</h5></td>
+ <td style="word-wrap: break-word;">0</td>
+ <td>Long</td>
+ <td>Set the timeout (in ms) for unacknowledged messages, truncated
to the nearest millisecond. The timeout needs to be greater than 1 second.<br
/>By default, the acknowledge timeout is disabled and that means that messages
delivered to a consumer will not be re-delivered unless the consumer
crashes.<br />When enabling ack timeout, if a message is not acknowledged
within the specified timeout it will be re-delivered to the consumer (possibly
to a different consumer in case of a shared subscription).</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.acknowledgementsGroupTimeMicros</h5></td>
+ <td style="word-wrap: break-word;">100000</td>
+ <td>Long</td>
+ <td>Group a consumer acknowledgment for a specified time (in μs).
By default, a consumer uses <code class="highlighter-rouge">100μs</code>
grouping time to send out acknowledgments to a broker. Setting a group time of
<code class="highlighter-rouge">0</code> sends out acknowledgments immediately.
A longer ack group time is more efficient at the expense of a slight increase
in message re-deliveries after a failure.</td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.autoAckOldestChunkedMessageOnQueueFull</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>Buffering large number of outstanding uncompleted chunked
messages can create memory pressure and it can be guarded by providing this
<code class="highlighter-rouge">pulsar.consumer.maxPendingChunkedMessage</code>
threshold. Once consumer reaches this threshold, it drops the outstanding
unchunked-messages by silently acking if <code
class="highlighter-rouge">pulsar.consumer.autoAckOldestChunkedMessageOnQueueFull</code>
is true else it marks them for redelivery.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.autoUpdatePartitions</h5></td>
+ <td style="word-wrap: break-word;">true</td>
+ <td>Boolean</td>
+ <td>If <code class="highlighter-rouge">autoUpdatePartitions</code>
is enabled, a consumer subscribes to partition increase automatically.<br
/>Note: this is only for partitioned consumers.</td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.autoUpdatePartitionsIntervalSeconds</h5></td>
+ <td style="word-wrap: break-word;">60</td>
+ <td>Integer</td>
+ <td>Set the interval (in seconds) of updating partitions. This
only works if autoUpdatePartitions is enabled.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.consumerName</h5></td>
+ <td style="word-wrap: break-word;">(none)</td>
+ <td>String</td>
+ <td>Consumer name is informative and it can be used to identify a
particular consumer instance from the topic stats.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.cryptoFailureAction</h5></td>
+ <td style="word-wrap: break-word;">FAIL</td>
+ <td><p>Enum</p></td>
+ <td>Consumer should take action when it receives a message that
can not be decrypted.<ul><li><code class="highlighter-rouge">FAIL</code>: this
is the default option to fail messages until crypto succeeds.</li><li><code
class="highlighter-rouge">DISCARD</code>: silently acknowledge and not deliver
message to an application.</li><li><code
class="highlighter-rouge">CONSUME</code>: deliver encrypted messages to
applications. It is the application's responsibility to decrypt the
message.</li></ul><br />The decompression of message fails.<br />If messages
contain batch messages, a client is not be able to retrieve individual messages
in batch.<br />Delivered encrypted message contains <code
class="highlighter-rouge">EncryptionContext</code> which contains encryption
and compression information in it using which application can decrypt consumed
message payload.<br /><br />Possible
values:<ul><li>"FAIL"</li><li>"DISCARD"</li><li>"CONSUME"</li></ul></td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.deadLetterPolicy.deadLetterTopic</h5></td>
+ <td style="word-wrap: break-word;">(none)</td>
+ <td>String</td>
+ <td>Name of the dead topic where the failing messages will be
sent.</td>
Review comment:
```suggestion
<td>Name of the dead topic where the failed messages are
sent.</td>
```
##########
File path: docs/layouts/shortcodes/generated/pulsar_consumer_configuration.html
##########
@@ -0,0 +1,180 @@
+<table class="configuration table table-bordered">
+ <thead>
+ <tr>
+ <th class="text-left" style="width: 20%">Key</th>
+ <th class="text-left" style="width: 15%">Default</th>
+ <th class="text-left" style="width: 10%">Type</th>
+ <th class="text-left" style="width: 55%">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><h5>pulsar.consumer.ackReceiptEnabled</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>Ack will return receipt but does not mean that the message
will not be resent after get receipt.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.ackTimeoutMillis</h5></td>
+ <td style="word-wrap: break-word;">0</td>
+ <td>Long</td>
+ <td>Set the timeout (in ms) for unacknowledged messages, truncated
to the nearest millisecond. The timeout needs to be greater than 1 second.<br
/>By default, the acknowledge timeout is disabled and that means that messages
delivered to a consumer will not be re-delivered unless the consumer
crashes.<br />When enabling ack timeout, if a message is not acknowledged
within the specified timeout it will be re-delivered to the consumer (possibly
to a different consumer in case of a shared subscription).</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.acknowledgementsGroupTimeMicros</h5></td>
+ <td style="word-wrap: break-word;">100000</td>
+ <td>Long</td>
+ <td>Group a consumer acknowledgment for a specified time (in μs).
By default, a consumer uses <code class="highlighter-rouge">100μs</code>
grouping time to send out acknowledgments to a broker. Setting a group time of
<code class="highlighter-rouge">0</code> sends out acknowledgments immediately.
A longer ack group time is more efficient at the expense of a slight increase
in message re-deliveries after a failure.</td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.autoAckOldestChunkedMessageOnQueueFull</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>Buffering large number of outstanding uncompleted chunked
messages can create memory pressure and it can be guarded by providing this
<code class="highlighter-rouge">pulsar.consumer.maxPendingChunkedMessage</code>
threshold. Once consumer reaches this threshold, it drops the outstanding
unchunked-messages by silently acking if <code
class="highlighter-rouge">pulsar.consumer.autoAckOldestChunkedMessageOnQueueFull</code>
is true else it marks them for redelivery.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.autoUpdatePartitions</h5></td>
+ <td style="word-wrap: break-word;">true</td>
+ <td>Boolean</td>
+ <td>If <code class="highlighter-rouge">autoUpdatePartitions</code>
is enabled, a consumer subscribes to partition increase automatically.<br
/>Note: this is only for partitioned consumers.</td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.autoUpdatePartitionsIntervalSeconds</h5></td>
+ <td style="word-wrap: break-word;">60</td>
+ <td>Integer</td>
+ <td>Set the interval (in seconds) of updating partitions. This
only works if autoUpdatePartitions is enabled.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.consumerName</h5></td>
+ <td style="word-wrap: break-word;">(none)</td>
+ <td>String</td>
+ <td>Consumer name is informative and it can be used to identify a
particular consumer instance from the topic stats.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.cryptoFailureAction</h5></td>
+ <td style="word-wrap: break-word;">FAIL</td>
+ <td><p>Enum</p></td>
+ <td>Consumer should take action when it receives a message that
can not be decrypted.<ul><li><code class="highlighter-rouge">FAIL</code>: this
is the default option to fail messages until crypto succeeds.</li><li><code
class="highlighter-rouge">DISCARD</code>: silently acknowledge and not deliver
message to an application.</li><li><code
class="highlighter-rouge">CONSUME</code>: deliver encrypted messages to
applications. It is the application's responsibility to decrypt the
message.</li></ul><br />The decompression of message fails.<br />If messages
contain batch messages, a client is not be able to retrieve individual messages
in batch.<br />Delivered encrypted message contains <code
class="highlighter-rouge">EncryptionContext</code> which contains encryption
and compression information in it using which application can decrypt consumed
message payload.<br /><br />Possible
values:<ul><li>"FAIL"</li><li>"DISCARD"</li><li>"CONSUME"</li></ul></td>
Review comment:
```suggestion
<td>The consumer should take action when it receives a message
that can not be decrypted.<ul><li><code class="highlighter-rouge">FAIL</code>:
this is the default option to fail messages until crypto
succeeds.</li><li><code class="highlighter-rouge">DISCARD</code>: silently
acknowledge but do not deliver messages to an application.</li><li><code
class="highlighter-rouge">CONSUME</code>: deliver encrypted messages to
applications. It is the application's responsibility to decrypt the
message.</li></ul><br />Fail to decompress the messages.<br />If messages
contain batch messages, a client is not be able to retrieve individual messages
in batch.<br />The delivered encrypted message contains <code
class="highlighter-rouge">EncryptionContext</code> which contains encryption
and compression information in. You can use an application to decrypt the
consumed message payload.<br /><br />Possible
values:<ul><li>"FAIL"</li><li>"DISCARD"</li><li>"CONSUME"</li></ul></td>
```
##########
File path: docs/layouts/shortcodes/generated/pulsar_source_configuration.html
##########
@@ -0,0 +1,54 @@
+<table class="configuration table table-bordered">
+ <thead>
+ <tr>
+ <th class="text-left" style="width: 20%">Key</th>
+ <th class="text-left" style="width: 15%">Default</th>
+ <th class="text-left" style="width: 10%">Type</th>
+ <th class="text-left" style="width: 55%">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><h5>pulsar.source.autoCommitCursorInterval</h5></td>
+ <td style="word-wrap: break-word;">5000</td>
+ <td>Long</td>
+ <td>This option is used only when user disabled checkpoint and
using Exclusive or Failover subscription. We would automatically commit the
cursor using the given period (in ms).</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.source.enableAutoAcknowledgeMessage</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>Flink commits the consuming position with pulsar transactions
on checkpoint. However, if you have disabled the flink checkpoint or your
pulsar cluster disabled the transaction, make sure you have set this option to
<code class="highlighter-rouge">true</code>.<br />The source would use pulsar
client's internal mechanism and commit cursor in two ways.<ul><li>For <code
class="highlighter-rouge">Key_Shared</code> and <code
class="highlighter-rouge">Shared</code> subscription: the cursor would be
committed once the message is consumed.</li><li>For <code
class="highlighter-rouge">Exclusive</code> and <code
class="highlighter-rouge">Failover</code> subscription: the cursor would be
committed in a fixed interval.</li></ul></td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.source.maxFetchRecords</h5></td>
+ <td style="word-wrap: break-word;">100</td>
+ <td>Integer</td>
+ <td>The max number of records to fetch to wait when polling. A
longer time increases throughput but also latency. A fetch batch might be
finished earlier because of <code
class="highlighter-rouge">pulsar.source.maxFetchTime</code>.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.source.maxFetchTime</h5></td>
+ <td style="word-wrap: break-word;">10000</td>
+ <td>Long</td>
+ <td>The max time (in ms) to wait when fetching records. A longer
time increases throughput but also latency. A fetch batch might be finished
earlier because of <code
class="highlighter-rouge">pulsar.source.maxFetchRecords</code>.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.source.partitionDiscoveryIntervalMs</h5></td>
+ <td style="word-wrap: break-word;">30000</td>
+ <td>Long</td>
+ <td>The interval (in ms) for the Pulsar source to discover the new
partitions. A non-positive value disables the partition discovery.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.source.transactionTimeoutMillis</h5></td>
+ <td style="word-wrap: break-word;">10800000</td>
+ <td>Long</td>
+ <td>This option is used for when using <code
class="highlighter-rouge">Shared</code> or <code
class="highlighter-rouge">Key_Shared</code> subscription. You should config
this option when you didn't enable the <code
class="highlighter-rouge">pulsar.source.enableAutoAcknowledgeMessage</code>
option.<br />The value (in ms) should be greater than the checkpoint
interval.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.source.verifyInitialOffsets</h5></td>
+ <td style="word-wrap: break-word;">WARN_ON_MISMATCH</td>
+ <td><p>Enum</p></td>
+ <td>Upon (re)starting the source checks whether the expected
message can be read. If failure is enabled the application fails, else it logs
a warning. A possible solution is to adjust the retention settings in pulsar or
ignoring the check result.<br /><br />Possible
values:<ul><li>"FAIL_ON_MISMATCH"</li><li>"WARN_ON_MISMATCH"</li></ul></td>
Review comment:
```suggestion
<td>Upon (re)starting the source, check whether the expected
message can be read. If failure is enabled, the application fails. Otherwise,
it logs a warning. A possible solution is to adjust the retention settings in
Pulsar or ignoring the check result.<br /><br />Possible
values:<ul><li>"FAIL_ON_MISMATCH"</li><li>"WARN_ON_MISMATCH"</li></ul></td>
```
##########
File path: docs/layouts/shortcodes/generated/pulsar_source_configuration.html
##########
@@ -0,0 +1,54 @@
+<table class="configuration table table-bordered">
+ <thead>
+ <tr>
+ <th class="text-left" style="width: 20%">Key</th>
+ <th class="text-left" style="width: 15%">Default</th>
+ <th class="text-left" style="width: 10%">Type</th>
+ <th class="text-left" style="width: 55%">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><h5>pulsar.source.autoCommitCursorInterval</h5></td>
+ <td style="word-wrap: break-word;">5000</td>
+ <td>Long</td>
+ <td>This option is used only when user disabled checkpoint and
using Exclusive or Failover subscription. We would automatically commit the
cursor using the given period (in ms).</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.source.enableAutoAcknowledgeMessage</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>Flink commits the consuming position with pulsar transactions
on checkpoint. However, if you have disabled the flink checkpoint or your
pulsar cluster disabled the transaction, make sure you have set this option to
<code class="highlighter-rouge">true</code>.<br />The source would use pulsar
client's internal mechanism and commit cursor in two ways.<ul><li>For <code
class="highlighter-rouge">Key_Shared</code> and <code
class="highlighter-rouge">Shared</code> subscription: the cursor would be
committed once the message is consumed.</li><li>For <code
class="highlighter-rouge">Exclusive</code> and <code
class="highlighter-rouge">Failover</code> subscription: the cursor would be
committed in a fixed interval.</li></ul></td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.source.maxFetchRecords</h5></td>
+ <td style="word-wrap: break-word;">100</td>
+ <td>Integer</td>
+ <td>The max number of records to fetch to wait when polling. A
longer time increases throughput but also latency. A fetch batch might be
finished earlier because of <code
class="highlighter-rouge">pulsar.source.maxFetchTime</code>.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.source.maxFetchTime</h5></td>
+ <td style="word-wrap: break-word;">10000</td>
+ <td>Long</td>
+ <td>The max time (in ms) to wait when fetching records. A longer
time increases throughput but also latency. A fetch batch might be finished
earlier because of <code
class="highlighter-rouge">pulsar.source.maxFetchRecords</code>.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.source.partitionDiscoveryIntervalMs</h5></td>
+ <td style="word-wrap: break-word;">30000</td>
+ <td>Long</td>
+ <td>The interval (in ms) for the Pulsar source to discover the new
partitions. A non-positive value disables the partition discovery.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.source.transactionTimeoutMillis</h5></td>
+ <td style="word-wrap: break-word;">10800000</td>
+ <td>Long</td>
+ <td>This option is used for when using <code
class="highlighter-rouge">Shared</code> or <code
class="highlighter-rouge">Key_Shared</code> subscription. You should config
this option when you didn't enable the <code
class="highlighter-rouge">pulsar.source.enableAutoAcknowledgeMessage</code>
option.<br />The value (in ms) should be greater than the checkpoint
interval.</td>
Review comment:
```suggestion
<td>This option is used in <code
class="highlighter-rouge">Shared</code> or <code
class="highlighter-rouge">Key_Shared</code> subscription. You should configure
this option when you do not enable the <code
class="highlighter-rouge">pulsar.source.enableAutoAcknowledgeMessage</code>
option.<br />The value (in ms) should be greater than the checkpoint
interval.</td>
```
##########
File path: docs/layouts/shortcodes/generated/pulsar_consumer_configuration.html
##########
@@ -0,0 +1,180 @@
+<table class="configuration table table-bordered">
+ <thead>
+ <tr>
+ <th class="text-left" style="width: 20%">Key</th>
+ <th class="text-left" style="width: 15%">Default</th>
+ <th class="text-left" style="width: 10%">Type</th>
+ <th class="text-left" style="width: 55%">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><h5>pulsar.consumer.ackReceiptEnabled</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>Ack will return receipt but does not mean that the message
will not be resent after get receipt.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.ackTimeoutMillis</h5></td>
+ <td style="word-wrap: break-word;">0</td>
+ <td>Long</td>
+ <td>Set the timeout (in ms) for unacknowledged messages, truncated
to the nearest millisecond. The timeout needs to be greater than 1 second.<br
/>By default, the acknowledge timeout is disabled and that means that messages
delivered to a consumer will not be re-delivered unless the consumer
crashes.<br />When enabling ack timeout, if a message is not acknowledged
within the specified timeout it will be re-delivered to the consumer (possibly
to a different consumer in case of a shared subscription).</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.acknowledgementsGroupTimeMicros</h5></td>
+ <td style="word-wrap: break-word;">100000</td>
+ <td>Long</td>
+ <td>Group a consumer acknowledgment for a specified time (in μs).
By default, a consumer uses <code class="highlighter-rouge">100μs</code>
grouping time to send out acknowledgments to a broker. Setting a group time of
<code class="highlighter-rouge">0</code> sends out acknowledgments immediately.
A longer ack group time is more efficient at the expense of a slight increase
in message re-deliveries after a failure.</td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.autoAckOldestChunkedMessageOnQueueFull</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>Buffering large number of outstanding uncompleted chunked
messages can create memory pressure and it can be guarded by providing this
<code class="highlighter-rouge">pulsar.consumer.maxPendingChunkedMessage</code>
threshold. Once consumer reaches this threshold, it drops the outstanding
unchunked-messages by silently acking if <code
class="highlighter-rouge">pulsar.consumer.autoAckOldestChunkedMessageOnQueueFull</code>
is true else it marks them for redelivery.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.autoUpdatePartitions</h5></td>
+ <td style="word-wrap: break-word;">true</td>
+ <td>Boolean</td>
+ <td>If <code class="highlighter-rouge">autoUpdatePartitions</code>
is enabled, a consumer subscribes to partition increase automatically.<br
/>Note: this is only for partitioned consumers.</td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.autoUpdatePartitionsIntervalSeconds</h5></td>
+ <td style="word-wrap: break-word;">60</td>
+ <td>Integer</td>
+ <td>Set the interval (in seconds) of updating partitions. This
only works if autoUpdatePartitions is enabled.</td>
Review comment:
```suggestion
<td>The interval (in seconds) of updating partitions. This only
works if autoUpdatePartitions is enabled.</td>
```
##########
File path: docs/layouts/shortcodes/generated/pulsar_consumer_configuration.html
##########
@@ -0,0 +1,180 @@
+<table class="configuration table table-bordered">
+ <thead>
+ <tr>
+ <th class="text-left" style="width: 20%">Key</th>
+ <th class="text-left" style="width: 15%">Default</th>
+ <th class="text-left" style="width: 10%">Type</th>
+ <th class="text-left" style="width: 55%">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><h5>pulsar.consumer.ackReceiptEnabled</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>Ack will return receipt but does not mean that the message
will not be resent after get receipt.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.ackTimeoutMillis</h5></td>
+ <td style="word-wrap: break-word;">0</td>
+ <td>Long</td>
+ <td>Set the timeout (in ms) for unacknowledged messages, truncated
to the nearest millisecond. The timeout needs to be greater than 1 second.<br
/>By default, the acknowledge timeout is disabled and that means that messages
delivered to a consumer will not be re-delivered unless the consumer
crashes.<br />When enabling ack timeout, if a message is not acknowledged
within the specified timeout it will be re-delivered to the consumer (possibly
to a different consumer in case of a shared subscription).</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.acknowledgementsGroupTimeMicros</h5></td>
+ <td style="word-wrap: break-word;">100000</td>
+ <td>Long</td>
+ <td>Group a consumer acknowledgment for a specified time (in μs).
By default, a consumer uses <code class="highlighter-rouge">100μs</code>
grouping time to send out acknowledgments to a broker. Setting a group time of
<code class="highlighter-rouge">0</code> sends out acknowledgments immediately.
A longer ack group time is more efficient at the expense of a slight increase
in message re-deliveries after a failure.</td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.autoAckOldestChunkedMessageOnQueueFull</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>Buffering large number of outstanding uncompleted chunked
messages can create memory pressure and it can be guarded by providing this
<code class="highlighter-rouge">pulsar.consumer.maxPendingChunkedMessage</code>
threshold. Once consumer reaches this threshold, it drops the outstanding
unchunked-messages by silently acking if <code
class="highlighter-rouge">pulsar.consumer.autoAckOldestChunkedMessageOnQueueFull</code>
is true else it marks them for redelivery.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.autoUpdatePartitions</h5></td>
+ <td style="word-wrap: break-word;">true</td>
+ <td>Boolean</td>
+ <td>If <code class="highlighter-rouge">autoUpdatePartitions</code>
is enabled, a consumer subscribes to partition increase automatically.<br
/>Note: this is only for partitioned consumers.</td>
Review comment:
This sentence is not grammatically correct. But i cannot figure out what
you want to express.
a consumer subscribes to partition increase automatically.
##########
File path: docs/layouts/shortcodes/generated/pulsar_consumer_configuration.html
##########
@@ -0,0 +1,180 @@
+<table class="configuration table table-bordered">
+ <thead>
+ <tr>
+ <th class="text-left" style="width: 20%">Key</th>
+ <th class="text-left" style="width: 15%">Default</th>
+ <th class="text-left" style="width: 10%">Type</th>
+ <th class="text-left" style="width: 55%">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><h5>pulsar.consumer.ackReceiptEnabled</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>Ack will return receipt but does not mean that the message
will not be resent after get receipt.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.ackTimeoutMillis</h5></td>
+ <td style="word-wrap: break-word;">0</td>
+ <td>Long</td>
+ <td>Set the timeout (in ms) for unacknowledged messages, truncated
to the nearest millisecond. The timeout needs to be greater than 1 second.<br
/>By default, the acknowledge timeout is disabled and that means that messages
delivered to a consumer will not be re-delivered unless the consumer
crashes.<br />When enabling ack timeout, if a message is not acknowledged
within the specified timeout it will be re-delivered to the consumer (possibly
to a different consumer in case of a shared subscription).</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.acknowledgementsGroupTimeMicros</h5></td>
+ <td style="word-wrap: break-word;">100000</td>
+ <td>Long</td>
+ <td>Group a consumer acknowledgment for a specified time (in μs).
By default, a consumer uses <code class="highlighter-rouge">100μs</code>
grouping time to send out acknowledgments to a broker. Setting a group time of
<code class="highlighter-rouge">0</code> sends out acknowledgments immediately.
A longer ack group time is more efficient at the expense of a slight increase
in message re-deliveries after a failure.</td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.autoAckOldestChunkedMessageOnQueueFull</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>Buffering large number of outstanding uncompleted chunked
messages can create memory pressure and it can be guarded by providing this
<code class="highlighter-rouge">pulsar.consumer.maxPendingChunkedMessage</code>
threshold. Once consumer reaches this threshold, it drops the outstanding
unchunked-messages by silently acking if <code
class="highlighter-rouge">pulsar.consumer.autoAckOldestChunkedMessageOnQueueFull</code>
is true else it marks them for redelivery.</td>
Review comment:
```suggestion
<td>Buffering a large number of outstanding uncompleted chunked
messages can bring memory pressure and it can be guarded by providing this
<code class="highlighter-rouge">pulsar.consumer.maxPendingChunkedMessage</code>
threshold. Once a consumer reaches this threshold, it drops the outstanding
unchunked messages by silently acknowledging if <code
class="highlighter-rouge">pulsar.consumer.autoAckOldestChunkedMessageOnQueueFull</code>
is true. Otherwise, it marks them for redelivery.</td>
```
##########
File path: docs/layouts/shortcodes/generated/pulsar_consumer_configuration.html
##########
@@ -0,0 +1,180 @@
+<table class="configuration table table-bordered">
+ <thead>
+ <tr>
+ <th class="text-left" style="width: 20%">Key</th>
+ <th class="text-left" style="width: 15%">Default</th>
+ <th class="text-left" style="width: 10%">Type</th>
+ <th class="text-left" style="width: 55%">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><h5>pulsar.consumer.ackReceiptEnabled</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>Ack will return receipt but does not mean that the message
will not be resent after get receipt.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.ackTimeoutMillis</h5></td>
+ <td style="word-wrap: break-word;">0</td>
+ <td>Long</td>
+ <td>Set the timeout (in ms) for unacknowledged messages, truncated
to the nearest millisecond. The timeout needs to be greater than 1 second.<br
/>By default, the acknowledge timeout is disabled and that means that messages
delivered to a consumer will not be re-delivered unless the consumer
crashes.<br />When enabling ack timeout, if a message is not acknowledged
within the specified timeout it will be re-delivered to the consumer (possibly
to a different consumer in case of a shared subscription).</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.acknowledgementsGroupTimeMicros</h5></td>
+ <td style="word-wrap: break-word;">100000</td>
+ <td>Long</td>
+ <td>Group a consumer acknowledgment for a specified time (in μs).
By default, a consumer uses <code class="highlighter-rouge">100μs</code>
grouping time to send out acknowledgments to a broker. Setting a group time of
<code class="highlighter-rouge">0</code> sends out acknowledgments immediately.
A longer ack group time is more efficient at the expense of a slight increase
in message re-deliveries after a failure.</td>
Review comment:
```suggestion
<td>Group a consumer acknowledgment for a specified time (in
μs). By default, a consumer uses <code class="highlighter-rouge">100μs</code>
grouping time to send out acknowledgments to a broker. If the group time is set
to <code class="highlighter-rouge">0</code>, acknowledgments are sent out
immediately. A longer group time is more efficient at the expense of a slight
increase in message re-deliveries after a failure.</td>
```
##########
File path: docs/layouts/shortcodes/generated/pulsar_consumer_configuration.html
##########
@@ -0,0 +1,180 @@
+<table class="configuration table table-bordered">
+ <thead>
+ <tr>
+ <th class="text-left" style="width: 20%">Key</th>
+ <th class="text-left" style="width: 15%">Default</th>
+ <th class="text-left" style="width: 10%">Type</th>
+ <th class="text-left" style="width: 55%">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><h5>pulsar.consumer.ackReceiptEnabled</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>Ack will return receipt but does not mean that the message
will not be resent after get receipt.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.ackTimeoutMillis</h5></td>
+ <td style="word-wrap: break-word;">0</td>
+ <td>Long</td>
+ <td>Set the timeout (in ms) for unacknowledged messages, truncated
to the nearest millisecond. The timeout needs to be greater than 1 second.<br
/>By default, the acknowledge timeout is disabled and that means that messages
delivered to a consumer will not be re-delivered unless the consumer
crashes.<br />When enabling ack timeout, if a message is not acknowledged
within the specified timeout it will be re-delivered to the consumer (possibly
to a different consumer in case of a shared subscription).</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.acknowledgementsGroupTimeMicros</h5></td>
+ <td style="word-wrap: break-word;">100000</td>
+ <td>Long</td>
+ <td>Group a consumer acknowledgment for a specified time (in μs).
By default, a consumer uses <code class="highlighter-rouge">100μs</code>
grouping time to send out acknowledgments to a broker. Setting a group time of
<code class="highlighter-rouge">0</code> sends out acknowledgments immediately.
A longer ack group time is more efficient at the expense of a slight increase
in message re-deliveries after a failure.</td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.autoAckOldestChunkedMessageOnQueueFull</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>Buffering large number of outstanding uncompleted chunked
messages can create memory pressure and it can be guarded by providing this
<code class="highlighter-rouge">pulsar.consumer.maxPendingChunkedMessage</code>
threshold. Once consumer reaches this threshold, it drops the outstanding
unchunked-messages by silently acking if <code
class="highlighter-rouge">pulsar.consumer.autoAckOldestChunkedMessageOnQueueFull</code>
is true else it marks them for redelivery.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.autoUpdatePartitions</h5></td>
+ <td style="word-wrap: break-word;">true</td>
+ <td>Boolean</td>
+ <td>If <code class="highlighter-rouge">autoUpdatePartitions</code>
is enabled, a consumer subscribes to partition increase automatically.<br
/>Note: this is only for partitioned consumers.</td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.autoUpdatePartitionsIntervalSeconds</h5></td>
+ <td style="word-wrap: break-word;">60</td>
+ <td>Integer</td>
+ <td>Set the interval (in seconds) of updating partitions. This
only works if autoUpdatePartitions is enabled.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.consumerName</h5></td>
+ <td style="word-wrap: break-word;">(none)</td>
+ <td>String</td>
+ <td>Consumer name is informative and it can be used to identify a
particular consumer instance from the topic stats.</td>
Review comment:
```suggestion
<td>The consumer name is informative and it can be used to
identify a particular consumer instance from the topic stats.</td>
```
##########
File path: docs/layouts/shortcodes/generated/pulsar_consumer_configuration.html
##########
@@ -0,0 +1,180 @@
+<table class="configuration table table-bordered">
+ <thead>
+ <tr>
+ <th class="text-left" style="width: 20%">Key</th>
+ <th class="text-left" style="width: 15%">Default</th>
+ <th class="text-left" style="width: 10%">Type</th>
+ <th class="text-left" style="width: 55%">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><h5>pulsar.consumer.ackReceiptEnabled</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>Ack will return receipt but does not mean that the message
will not be resent after get receipt.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.ackTimeoutMillis</h5></td>
+ <td style="word-wrap: break-word;">0</td>
+ <td>Long</td>
+ <td>Set the timeout (in ms) for unacknowledged messages, truncated
to the nearest millisecond. The timeout needs to be greater than 1 second.<br
/>By default, the acknowledge timeout is disabled and that means that messages
delivered to a consumer will not be re-delivered unless the consumer
crashes.<br />When enabling ack timeout, if a message is not acknowledged
within the specified timeout it will be re-delivered to the consumer (possibly
to a different consumer in case of a shared subscription).</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.acknowledgementsGroupTimeMicros</h5></td>
+ <td style="word-wrap: break-word;">100000</td>
+ <td>Long</td>
+ <td>Group a consumer acknowledgment for a specified time (in μs).
By default, a consumer uses <code class="highlighter-rouge">100μs</code>
grouping time to send out acknowledgments to a broker. Setting a group time of
<code class="highlighter-rouge">0</code> sends out acknowledgments immediately.
A longer ack group time is more efficient at the expense of a slight increase
in message re-deliveries after a failure.</td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.autoAckOldestChunkedMessageOnQueueFull</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>Buffering large number of outstanding uncompleted chunked
messages can create memory pressure and it can be guarded by providing this
<code class="highlighter-rouge">pulsar.consumer.maxPendingChunkedMessage</code>
threshold. Once consumer reaches this threshold, it drops the outstanding
unchunked-messages by silently acking if <code
class="highlighter-rouge">pulsar.consumer.autoAckOldestChunkedMessageOnQueueFull</code>
is true else it marks them for redelivery.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.autoUpdatePartitions</h5></td>
+ <td style="word-wrap: break-word;">true</td>
+ <td>Boolean</td>
+ <td>If <code class="highlighter-rouge">autoUpdatePartitions</code>
is enabled, a consumer subscribes to partition increase automatically.<br
/>Note: this is only for partitioned consumers.</td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.autoUpdatePartitionsIntervalSeconds</h5></td>
+ <td style="word-wrap: break-word;">60</td>
+ <td>Integer</td>
+ <td>Set the interval (in seconds) of updating partitions. This
only works if autoUpdatePartitions is enabled.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.consumerName</h5></td>
+ <td style="word-wrap: break-word;">(none)</td>
+ <td>String</td>
+ <td>Consumer name is informative and it can be used to identify a
particular consumer instance from the topic stats.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.cryptoFailureAction</h5></td>
+ <td style="word-wrap: break-word;">FAIL</td>
+ <td><p>Enum</p></td>
+ <td>Consumer should take action when it receives a message that
can not be decrypted.<ul><li><code class="highlighter-rouge">FAIL</code>: this
is the default option to fail messages until crypto succeeds.</li><li><code
class="highlighter-rouge">DISCARD</code>: silently acknowledge and not deliver
message to an application.</li><li><code
class="highlighter-rouge">CONSUME</code>: deliver encrypted messages to
applications. It is the application's responsibility to decrypt the
message.</li></ul><br />The decompression of message fails.<br />If messages
contain batch messages, a client is not be able to retrieve individual messages
in batch.<br />Delivered encrypted message contains <code
class="highlighter-rouge">EncryptionContext</code> which contains encryption
and compression information in it using which application can decrypt consumed
message payload.<br /><br />Possible
values:<ul><li>"FAIL"</li><li>"DISCARD"</li><li>"CONSUME"</li></ul></td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.deadLetterPolicy.deadLetterTopic</h5></td>
+ <td style="word-wrap: break-word;">(none)</td>
+ <td>String</td>
+ <td>Name of the dead topic where the failing messages will be
sent.</td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.deadLetterPolicy.maxRedeliverCount</h5></td>
+ <td style="word-wrap: break-word;">0</td>
+ <td>Integer</td>
+ <td>Maximum number of times that a message will be redelivered
before being sent to the dead letter queue.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.deadLetterPolicy.retryLetterTopic</h5></td>
+ <td style="word-wrap: break-word;">(none)</td>
+ <td>String</td>
+ <td>Name of the retry topic where the failing messages will be
sent.</td>
Review comment:
```suggestion
<td>Name of the retry topic where the failed messages are
sent.</td>
```
##########
File path: docs/layouts/shortcodes/generated/pulsar_consumer_configuration.html
##########
@@ -0,0 +1,180 @@
+<table class="configuration table table-bordered">
+ <thead>
+ <tr>
+ <th class="text-left" style="width: 20%">Key</th>
+ <th class="text-left" style="width: 15%">Default</th>
+ <th class="text-left" style="width: 10%">Type</th>
+ <th class="text-left" style="width: 55%">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><h5>pulsar.consumer.ackReceiptEnabled</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>Ack will return receipt but does not mean that the message
will not be resent after get receipt.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.ackTimeoutMillis</h5></td>
+ <td style="word-wrap: break-word;">0</td>
+ <td>Long</td>
+ <td>Set the timeout (in ms) for unacknowledged messages, truncated
to the nearest millisecond. The timeout needs to be greater than 1 second.<br
/>By default, the acknowledge timeout is disabled and that means that messages
delivered to a consumer will not be re-delivered unless the consumer
crashes.<br />When enabling ack timeout, if a message is not acknowledged
within the specified timeout it will be re-delivered to the consumer (possibly
to a different consumer in case of a shared subscription).</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.acknowledgementsGroupTimeMicros</h5></td>
+ <td style="word-wrap: break-word;">100000</td>
+ <td>Long</td>
+ <td>Group a consumer acknowledgment for a specified time (in μs).
By default, a consumer uses <code class="highlighter-rouge">100μs</code>
grouping time to send out acknowledgments to a broker. Setting a group time of
<code class="highlighter-rouge">0</code> sends out acknowledgments immediately.
A longer ack group time is more efficient at the expense of a slight increase
in message re-deliveries after a failure.</td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.autoAckOldestChunkedMessageOnQueueFull</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>Buffering large number of outstanding uncompleted chunked
messages can create memory pressure and it can be guarded by providing this
<code class="highlighter-rouge">pulsar.consumer.maxPendingChunkedMessage</code>
threshold. Once consumer reaches this threshold, it drops the outstanding
unchunked-messages by silently acking if <code
class="highlighter-rouge">pulsar.consumer.autoAckOldestChunkedMessageOnQueueFull</code>
is true else it marks them for redelivery.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.autoUpdatePartitions</h5></td>
+ <td style="word-wrap: break-word;">true</td>
+ <td>Boolean</td>
+ <td>If <code class="highlighter-rouge">autoUpdatePartitions</code>
is enabled, a consumer subscribes to partition increase automatically.<br
/>Note: this is only for partitioned consumers.</td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.autoUpdatePartitionsIntervalSeconds</h5></td>
+ <td style="word-wrap: break-word;">60</td>
+ <td>Integer</td>
+ <td>Set the interval (in seconds) of updating partitions. This
only works if autoUpdatePartitions is enabled.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.consumerName</h5></td>
+ <td style="word-wrap: break-word;">(none)</td>
+ <td>String</td>
+ <td>Consumer name is informative and it can be used to identify a
particular consumer instance from the topic stats.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.cryptoFailureAction</h5></td>
+ <td style="word-wrap: break-word;">FAIL</td>
+ <td><p>Enum</p></td>
+ <td>Consumer should take action when it receives a message that
can not be decrypted.<ul><li><code class="highlighter-rouge">FAIL</code>: this
is the default option to fail messages until crypto succeeds.</li><li><code
class="highlighter-rouge">DISCARD</code>: silently acknowledge and not deliver
message to an application.</li><li><code
class="highlighter-rouge">CONSUME</code>: deliver encrypted messages to
applications. It is the application's responsibility to decrypt the
message.</li></ul><br />The decompression of message fails.<br />If messages
contain batch messages, a client is not be able to retrieve individual messages
in batch.<br />Delivered encrypted message contains <code
class="highlighter-rouge">EncryptionContext</code> which contains encryption
and compression information in it using which application can decrypt consumed
message payload.<br /><br />Possible
values:<ul><li>"FAIL"</li><li>"DISCARD"</li><li>"CONSUME"</li></ul></td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.deadLetterPolicy.deadLetterTopic</h5></td>
+ <td style="word-wrap: break-word;">(none)</td>
+ <td>String</td>
+ <td>Name of the dead topic where the failing messages will be
sent.</td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.deadLetterPolicy.maxRedeliverCount</h5></td>
+ <td style="word-wrap: break-word;">0</td>
+ <td>Integer</td>
+ <td>Maximum number of times that a message will be redelivered
before being sent to the dead letter queue.</td>
Review comment:
```suggestion
<td>The maximum number of times that a message are redelivered
before being sent to the dead letter queue.</td>
```
##########
File path: docs/layouts/shortcodes/generated/pulsar_source_configuration.html
##########
@@ -0,0 +1,54 @@
+<table class="configuration table table-bordered">
+ <thead>
+ <tr>
+ <th class="text-left" style="width: 20%">Key</th>
+ <th class="text-left" style="width: 15%">Default</th>
+ <th class="text-left" style="width: 10%">Type</th>
+ <th class="text-left" style="width: 55%">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><h5>pulsar.source.autoCommitCursorInterval</h5></td>
+ <td style="word-wrap: break-word;">5000</td>
+ <td>Long</td>
+ <td>This option is used only when user disabled checkpoint and
using Exclusive or Failover subscription. We would automatically commit the
cursor using the given period (in ms).</td>
Review comment:
```suggestion
<td>This option is used only when the user disables the
checkpoint and use Exclusive or Failover subscription. We would automatically
commit the cursor using the given period (in ms).</td>
```
##########
File path: docs/layouts/shortcodes/generated/pulsar_consumer_configuration.html
##########
@@ -0,0 +1,180 @@
+<table class="configuration table table-bordered">
+ <thead>
+ <tr>
+ <th class="text-left" style="width: 20%">Key</th>
+ <th class="text-left" style="width: 15%">Default</th>
+ <th class="text-left" style="width: 10%">Type</th>
+ <th class="text-left" style="width: 55%">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><h5>pulsar.consumer.ackReceiptEnabled</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>Ack will return receipt but does not mean that the message
will not be resent after get receipt.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.ackTimeoutMillis</h5></td>
+ <td style="word-wrap: break-word;">0</td>
+ <td>Long</td>
+ <td>Set the timeout (in ms) for unacknowledged messages, truncated
to the nearest millisecond. The timeout needs to be greater than 1 second.<br
/>By default, the acknowledge timeout is disabled and that means that messages
delivered to a consumer will not be re-delivered unless the consumer
crashes.<br />When enabling ack timeout, if a message is not acknowledged
within the specified timeout it will be re-delivered to the consumer (possibly
to a different consumer in case of a shared subscription).</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.acknowledgementsGroupTimeMicros</h5></td>
+ <td style="word-wrap: break-word;">100000</td>
+ <td>Long</td>
+ <td>Group a consumer acknowledgment for a specified time (in μs).
By default, a consumer uses <code class="highlighter-rouge">100μs</code>
grouping time to send out acknowledgments to a broker. Setting a group time of
<code class="highlighter-rouge">0</code> sends out acknowledgments immediately.
A longer ack group time is more efficient at the expense of a slight increase
in message re-deliveries after a failure.</td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.autoAckOldestChunkedMessageOnQueueFull</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>Buffering large number of outstanding uncompleted chunked
messages can create memory pressure and it can be guarded by providing this
<code class="highlighter-rouge">pulsar.consumer.maxPendingChunkedMessage</code>
threshold. Once consumer reaches this threshold, it drops the outstanding
unchunked-messages by silently acking if <code
class="highlighter-rouge">pulsar.consumer.autoAckOldestChunkedMessageOnQueueFull</code>
is true else it marks them for redelivery.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.autoUpdatePartitions</h5></td>
+ <td style="word-wrap: break-word;">true</td>
+ <td>Boolean</td>
+ <td>If <code class="highlighter-rouge">autoUpdatePartitions</code>
is enabled, a consumer subscribes to partition increase automatically.<br
/>Note: this is only for partitioned consumers.</td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.autoUpdatePartitionsIntervalSeconds</h5></td>
+ <td style="word-wrap: break-word;">60</td>
+ <td>Integer</td>
+ <td>Set the interval (in seconds) of updating partitions. This
only works if autoUpdatePartitions is enabled.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.consumerName</h5></td>
+ <td style="word-wrap: break-word;">(none)</td>
+ <td>String</td>
+ <td>Consumer name is informative and it can be used to identify a
particular consumer instance from the topic stats.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.cryptoFailureAction</h5></td>
+ <td style="word-wrap: break-word;">FAIL</td>
+ <td><p>Enum</p></td>
+ <td>Consumer should take action when it receives a message that
can not be decrypted.<ul><li><code class="highlighter-rouge">FAIL</code>: this
is the default option to fail messages until crypto succeeds.</li><li><code
class="highlighter-rouge">DISCARD</code>: silently acknowledge and not deliver
message to an application.</li><li><code
class="highlighter-rouge">CONSUME</code>: deliver encrypted messages to
applications. It is the application's responsibility to decrypt the
message.</li></ul><br />The decompression of message fails.<br />If messages
contain batch messages, a client is not be able to retrieve individual messages
in batch.<br />Delivered encrypted message contains <code
class="highlighter-rouge">EncryptionContext</code> which contains encryption
and compression information in it using which application can decrypt consumed
message payload.<br /><br />Possible
values:<ul><li>"FAIL"</li><li>"DISCARD"</li><li>"CONSUME"</li></ul></td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.deadLetterPolicy.deadLetterTopic</h5></td>
+ <td style="word-wrap: break-word;">(none)</td>
+ <td>String</td>
+ <td>Name of the dead topic where the failing messages will be
sent.</td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.deadLetterPolicy.maxRedeliverCount</h5></td>
+ <td style="word-wrap: break-word;">0</td>
+ <td>Integer</td>
+ <td>Maximum number of times that a message will be redelivered
before being sent to the dead letter queue.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.deadLetterPolicy.retryLetterTopic</h5></td>
+ <td style="word-wrap: break-word;">(none)</td>
+ <td>String</td>
+ <td>Name of the retry topic where the failing messages will be
sent.</td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.expireTimeOfIncompleteChunkedMessageMillis</h5></td>
+ <td style="word-wrap: break-word;">60000</td>
+ <td>Long</td>
+ <td>If producer fails to publish all the chunks of a message then
consumer can expire incomplete chunks if consumer won't be able to receive all
chunks in expire times (default 1 hour, in ms).</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.maxPendingChunkedMessage</h5></td>
+ <td style="word-wrap: break-word;">10</td>
+ <td>Integer</td>
+ <td>Consumer buffers chunk messages into memory until it receives
all the chunks of the original message. While consuming chunk-messages, chunks
from same message might not be contiguous in the stream and they might be mixed
with other messages' chunks. So, consumer has to maintain multiple buffers to
manage chunks coming from different messages. This mainly happens when multiple
publishers are publishing messages on the topic concurrently or publisher
failed to publish all chunks of the messages.<br />eg: M1-C1, M2-C1, M1-C2,
M2-C2Messages M1-C1 and M1-C2 belong to original message M1, M2-C1 and M2-C2
messages belong to M2 message.<br />Buffering large number of outstanding
uncompleted chunked messages can create memory pressure and it can be guarded
by providing this <code
class="highlighter-rouge">pulsar.consumer.maxPendingChunkedMessage</code>
threshold. Once, consumer reaches this threshold, it drops the outstanding
unchunked-messages by silently acking or asking br
oker to redeliver later by marking it unacked. This behavior can be controlled
by configuration <code
class="highlighter-rouge">pulsar.consumer.autoAckOldestChunkedMessageOnQueueFull</code></td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.maxTotalReceiverQueueSizeAcrossPartitions</h5></td>
+ <td style="word-wrap: break-word;">50000</td>
+ <td>Integer</td>
+ <td>The max total receiver queue size across partitions.<br />This
setting reduces the receiver queue size for individual partitions if the total
receiver queue size exceeds this value.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.negativeAckRedeliveryDelayMicros</h5></td>
+ <td style="word-wrap: break-word;">60000000</td>
+ <td>Long</td>
+ <td>Delay (in μs) to wait before redelivering messages that failed
to be processed.<br />When an application uses <code
class="highlighter-rouge">Consumer.negativeAcknowledge(Message)</code>, failed
messages are redelivered after a fixed timeout.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.poolMessages</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>Enable pooling of messages and the underlying data
buffers.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.priorityLevel</h5></td>
+ <td style="word-wrap: break-word;">0</td>
+ <td>Integer</td>
+ <td>Priority level for a consumer to which a broker gives more
priority while dispatching messages in the shared subscription type.<br />The
broker follows descending priorities. For example, 0=max-priority, 1, 2,...<br
/>In shared subscription mode, the broker first dispatches messages to the max
priority level consumers if they have permits. Otherwise, the broker considers
next priority level consumers.<br /><br />Example 1<br />If a subscription has
consumerA with <code class="highlighter-rouge">priorityLevel</code> 0 and
consumerB with <code class="highlighter-rouge">priorityLevel</code> 1, then the
broker only dispatches messages to consumerA until it runs out permits and then
starts dispatching messages to consumerB.<br />Example 2<br />Consumer
Priority, Level, Permits
Review comment:
```suggestion
<td>Priority level for a consumer to which a broker gives more
priorities while dispatching messages in the shared subscription type.<br />The
broker follows descending priorities. For example, 0=max-priority, 1, 2,...<br
/>In shared subscription mode, the broker first dispatches messages to the
consumers on the highest priority level if they have permits. Otherwise, the
broker considers consumers on the next priority level.<br /><br />Example 1<br
/>If a subscription has consumer A with <code
class="highlighter-rouge">priorityLevel</code> 0 and consumer B with <code
class="highlighter-rouge">priorityLevel</code> 1, then the broker only
dispatches messages to consumer A until it runs out permits and then starts
dispatching messages to consumer B.<br />Example 2<br />Consumer Priority,
Level, Permits
```
##########
File path: docs/layouts/shortcodes/generated/pulsar_consumer_configuration.html
##########
@@ -0,0 +1,180 @@
+<table class="configuration table table-bordered">
+ <thead>
+ <tr>
+ <th class="text-left" style="width: 20%">Key</th>
+ <th class="text-left" style="width: 15%">Default</th>
+ <th class="text-left" style="width: 10%">Type</th>
+ <th class="text-left" style="width: 55%">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><h5>pulsar.consumer.ackReceiptEnabled</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>Ack will return receipt but does not mean that the message
will not be resent after get receipt.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.ackTimeoutMillis</h5></td>
+ <td style="word-wrap: break-word;">0</td>
+ <td>Long</td>
+ <td>Set the timeout (in ms) for unacknowledged messages, truncated
to the nearest millisecond. The timeout needs to be greater than 1 second.<br
/>By default, the acknowledge timeout is disabled and that means that messages
delivered to a consumer will not be re-delivered unless the consumer
crashes.<br />When enabling ack timeout, if a message is not acknowledged
within the specified timeout it will be re-delivered to the consumer (possibly
to a different consumer in case of a shared subscription).</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.acknowledgementsGroupTimeMicros</h5></td>
+ <td style="word-wrap: break-word;">100000</td>
+ <td>Long</td>
+ <td>Group a consumer acknowledgment for a specified time (in μs).
By default, a consumer uses <code class="highlighter-rouge">100μs</code>
grouping time to send out acknowledgments to a broker. Setting a group time of
<code class="highlighter-rouge">0</code> sends out acknowledgments immediately.
A longer ack group time is more efficient at the expense of a slight increase
in message re-deliveries after a failure.</td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.autoAckOldestChunkedMessageOnQueueFull</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>Buffering large number of outstanding uncompleted chunked
messages can create memory pressure and it can be guarded by providing this
<code class="highlighter-rouge">pulsar.consumer.maxPendingChunkedMessage</code>
threshold. Once consumer reaches this threshold, it drops the outstanding
unchunked-messages by silently acking if <code
class="highlighter-rouge">pulsar.consumer.autoAckOldestChunkedMessageOnQueueFull</code>
is true else it marks them for redelivery.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.autoUpdatePartitions</h5></td>
+ <td style="word-wrap: break-word;">true</td>
+ <td>Boolean</td>
+ <td>If <code class="highlighter-rouge">autoUpdatePartitions</code>
is enabled, a consumer subscribes to partition increase automatically.<br
/>Note: this is only for partitioned consumers.</td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.autoUpdatePartitionsIntervalSeconds</h5></td>
+ <td style="word-wrap: break-word;">60</td>
+ <td>Integer</td>
+ <td>Set the interval (in seconds) of updating partitions. This
only works if autoUpdatePartitions is enabled.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.consumerName</h5></td>
+ <td style="word-wrap: break-word;">(none)</td>
+ <td>String</td>
+ <td>Consumer name is informative and it can be used to identify a
particular consumer instance from the topic stats.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.cryptoFailureAction</h5></td>
+ <td style="word-wrap: break-word;">FAIL</td>
+ <td><p>Enum</p></td>
+ <td>Consumer should take action when it receives a message that
can not be decrypted.<ul><li><code class="highlighter-rouge">FAIL</code>: this
is the default option to fail messages until crypto succeeds.</li><li><code
class="highlighter-rouge">DISCARD</code>: silently acknowledge and not deliver
message to an application.</li><li><code
class="highlighter-rouge">CONSUME</code>: deliver encrypted messages to
applications. It is the application's responsibility to decrypt the
message.</li></ul><br />The decompression of message fails.<br />If messages
contain batch messages, a client is not be able to retrieve individual messages
in batch.<br />Delivered encrypted message contains <code
class="highlighter-rouge">EncryptionContext</code> which contains encryption
and compression information in it using which application can decrypt consumed
message payload.<br /><br />Possible
values:<ul><li>"FAIL"</li><li>"DISCARD"</li><li>"CONSUME"</li></ul></td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.deadLetterPolicy.deadLetterTopic</h5></td>
+ <td style="word-wrap: break-word;">(none)</td>
+ <td>String</td>
+ <td>Name of the dead topic where the failing messages will be
sent.</td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.deadLetterPolicy.maxRedeliverCount</h5></td>
+ <td style="word-wrap: break-word;">0</td>
+ <td>Integer</td>
+ <td>Maximum number of times that a message will be redelivered
before being sent to the dead letter queue.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.deadLetterPolicy.retryLetterTopic</h5></td>
+ <td style="word-wrap: break-word;">(none)</td>
+ <td>String</td>
+ <td>Name of the retry topic where the failing messages will be
sent.</td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.expireTimeOfIncompleteChunkedMessageMillis</h5></td>
+ <td style="word-wrap: break-word;">60000</td>
+ <td>Long</td>
+ <td>If producer fails to publish all the chunks of a message then
consumer can expire incomplete chunks if consumer won't be able to receive all
chunks in expire times (default 1 hour, in ms).</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.maxPendingChunkedMessage</h5></td>
+ <td style="word-wrap: break-word;">10</td>
+ <td>Integer</td>
+ <td>Consumer buffers chunk messages into memory until it receives
all the chunks of the original message. While consuming chunk-messages, chunks
from same message might not be contiguous in the stream and they might be mixed
with other messages' chunks. So, consumer has to maintain multiple buffers to
manage chunks coming from different messages. This mainly happens when multiple
publishers are publishing messages on the topic concurrently or publisher
failed to publish all chunks of the messages.<br />eg: M1-C1, M2-C1, M1-C2,
M2-C2Messages M1-C1 and M1-C2 belong to original message M1, M2-C1 and M2-C2
messages belong to M2 message.<br />Buffering large number of outstanding
uncompleted chunked messages can create memory pressure and it can be guarded
by providing this <code
class="highlighter-rouge">pulsar.consumer.maxPendingChunkedMessage</code>
threshold. Once, consumer reaches this threshold, it drops the outstanding
unchunked-messages by silently acking or asking br
oker to redeliver later by marking it unacked. This behavior can be controlled
by configuration <code
class="highlighter-rouge">pulsar.consumer.autoAckOldestChunkedMessageOnQueueFull</code></td>
Review comment:
```suggestion
<td>The consumer buffers chunk messages into memory until it
receives all the chunks of the original message. While consuming chunk
messages, chunks from the same message might not be contiguous in the stream
and they might be mixed with other messages' chunks. So, the consumer has to
maintain multiple buffers to manage chunks coming from different messages. This
mainly happens when multiple publishers are publishing messages on the topic
concurrently or publishers failed to publish all chunks of the messages.<br
/>For example, there are M1-C1, M2-C1, M1-C2, M2-C2 messages. M1-C1 and M1-C2
belong to the M1 original message while M2-C1 and M2-C2 belong to the M2
message.<br />Bufferingna large number of outstanding uncompleted chunked
messages can bring memory pressure and it can be guarded by providing this
<code class="highlighter-rouge">pulsar.consumer.maxPendingChunkedMessage</code>
threshold. Once, a consumer reaches this threshold, it drops the outstanding
unchunk
ed messages by silently acknowledging or asking the broker to redeliver
messages later by marking it unacknowledged. This behavior can be controlled by
the <code
class="highlighter-rouge">pulsar.consumer.autoAckOldestChunkedMessageOnQueueFull</code>
option.</td>
```
##########
File path: docs/layouts/shortcodes/generated/pulsar_source_configuration.html
##########
@@ -0,0 +1,54 @@
+<table class="configuration table table-bordered">
+ <thead>
+ <tr>
+ <th class="text-left" style="width: 20%">Key</th>
+ <th class="text-left" style="width: 15%">Default</th>
+ <th class="text-left" style="width: 10%">Type</th>
+ <th class="text-left" style="width: 55%">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><h5>pulsar.source.autoCommitCursorInterval</h5></td>
+ <td style="word-wrap: break-word;">5000</td>
+ <td>Long</td>
+ <td>This option is used only when user disabled checkpoint and
using Exclusive or Failover subscription. We would automatically commit the
cursor using the given period (in ms).</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.source.enableAutoAcknowledgeMessage</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>Flink commits the consuming position with pulsar transactions
on checkpoint. However, if you have disabled the flink checkpoint or your
pulsar cluster disabled the transaction, make sure you have set this option to
<code class="highlighter-rouge">true</code>.<br />The source would use pulsar
client's internal mechanism and commit cursor in two ways.<ul><li>For <code
class="highlighter-rouge">Key_Shared</code> and <code
class="highlighter-rouge">Shared</code> subscription: the cursor would be
committed once the message is consumed.</li><li>For <code
class="highlighter-rouge">Exclusive</code> and <code
class="highlighter-rouge">Failover</code> subscription: the cursor would be
committed in a fixed interval.</li></ul></td>
Review comment:
```suggestion
<td>Flink commits the consuming position with pulsar
transactions on checkpoint. However, if you have disabled the Flink checkpoint
or disabled transaction for your Pulsar cluster, ensure that you have set this
option to <code class="highlighter-rouge">true</code>.<br />The source would
use pulsar client's internal mechanism and commit cursor in two
ways.<ul><li>For <code class="highlighter-rouge">Key_Shared</code> and <code
class="highlighter-rouge">Shared</code> subscription, the cursor would be
committed once the message is consumed.</li><li>For <code
class="highlighter-rouge">Exclusive</code> and <code
class="highlighter-rouge">Failover</code> subscription, the cursor would be
committed in a given interval.</li></ul></td>
```
##########
File path: docs/layouts/shortcodes/generated/pulsar_consumer_configuration.html
##########
@@ -0,0 +1,180 @@
+<table class="configuration table table-bordered">
+ <thead>
+ <tr>
+ <th class="text-left" style="width: 20%">Key</th>
+ <th class="text-left" style="width: 15%">Default</th>
+ <th class="text-left" style="width: 10%">Type</th>
+ <th class="text-left" style="width: 55%">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><h5>pulsar.consumer.ackReceiptEnabled</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>Ack will return receipt but does not mean that the message
will not be resent after get receipt.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.ackTimeoutMillis</h5></td>
+ <td style="word-wrap: break-word;">0</td>
+ <td>Long</td>
+ <td>Set the timeout (in ms) for unacknowledged messages, truncated
to the nearest millisecond. The timeout needs to be greater than 1 second.<br
/>By default, the acknowledge timeout is disabled and that means that messages
delivered to a consumer will not be re-delivered unless the consumer
crashes.<br />When enabling ack timeout, if a message is not acknowledged
within the specified timeout it will be re-delivered to the consumer (possibly
to a different consumer in case of a shared subscription).</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.acknowledgementsGroupTimeMicros</h5></td>
+ <td style="word-wrap: break-word;">100000</td>
+ <td>Long</td>
+ <td>Group a consumer acknowledgment for a specified time (in μs).
By default, a consumer uses <code class="highlighter-rouge">100μs</code>
grouping time to send out acknowledgments to a broker. Setting a group time of
<code class="highlighter-rouge">0</code> sends out acknowledgments immediately.
A longer ack group time is more efficient at the expense of a slight increase
in message re-deliveries after a failure.</td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.autoAckOldestChunkedMessageOnQueueFull</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>Buffering large number of outstanding uncompleted chunked
messages can create memory pressure and it can be guarded by providing this
<code class="highlighter-rouge">pulsar.consumer.maxPendingChunkedMessage</code>
threshold. Once consumer reaches this threshold, it drops the outstanding
unchunked-messages by silently acking if <code
class="highlighter-rouge">pulsar.consumer.autoAckOldestChunkedMessageOnQueueFull</code>
is true else it marks them for redelivery.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.autoUpdatePartitions</h5></td>
+ <td style="word-wrap: break-word;">true</td>
+ <td>Boolean</td>
+ <td>If <code class="highlighter-rouge">autoUpdatePartitions</code>
is enabled, a consumer subscribes to partition increase automatically.<br
/>Note: this is only for partitioned consumers.</td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.autoUpdatePartitionsIntervalSeconds</h5></td>
+ <td style="word-wrap: break-word;">60</td>
+ <td>Integer</td>
+ <td>Set the interval (in seconds) of updating partitions. This
only works if autoUpdatePartitions is enabled.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.consumerName</h5></td>
+ <td style="word-wrap: break-word;">(none)</td>
+ <td>String</td>
+ <td>Consumer name is informative and it can be used to identify a
particular consumer instance from the topic stats.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.cryptoFailureAction</h5></td>
+ <td style="word-wrap: break-word;">FAIL</td>
+ <td><p>Enum</p></td>
+ <td>Consumer should take action when it receives a message that
can not be decrypted.<ul><li><code class="highlighter-rouge">FAIL</code>: this
is the default option to fail messages until crypto succeeds.</li><li><code
class="highlighter-rouge">DISCARD</code>: silently acknowledge and not deliver
message to an application.</li><li><code
class="highlighter-rouge">CONSUME</code>: deliver encrypted messages to
applications. It is the application's responsibility to decrypt the
message.</li></ul><br />The decompression of message fails.<br />If messages
contain batch messages, a client is not be able to retrieve individual messages
in batch.<br />Delivered encrypted message contains <code
class="highlighter-rouge">EncryptionContext</code> which contains encryption
and compression information in it using which application can decrypt consumed
message payload.<br /><br />Possible
values:<ul><li>"FAIL"</li><li>"DISCARD"</li><li>"CONSUME"</li></ul></td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.deadLetterPolicy.deadLetterTopic</h5></td>
+ <td style="word-wrap: break-word;">(none)</td>
+ <td>String</td>
+ <td>Name of the dead topic where the failing messages will be
sent.</td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.deadLetterPolicy.maxRedeliverCount</h5></td>
+ <td style="word-wrap: break-word;">0</td>
+ <td>Integer</td>
+ <td>Maximum number of times that a message will be redelivered
before being sent to the dead letter queue.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.deadLetterPolicy.retryLetterTopic</h5></td>
+ <td style="word-wrap: break-word;">(none)</td>
+ <td>String</td>
+ <td>Name of the retry topic where the failing messages will be
sent.</td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.expireTimeOfIncompleteChunkedMessageMillis</h5></td>
+ <td style="word-wrap: break-word;">60000</td>
+ <td>Long</td>
+ <td>If producer fails to publish all the chunks of a message then
consumer can expire incomplete chunks if consumer won't be able to receive all
chunks in expire times (default 1 hour, in ms).</td>
Review comment:
```suggestion
<td>If a producer fails to publish all the chunks of a message,
the consumer can expire incomplete chunks if the consumer cannot receive all
chunks in expire times (default 1 hour, in ms).</td>
```
##########
File path: docs/layouts/shortcodes/generated/pulsar_source_configuration.html
##########
@@ -0,0 +1,54 @@
+<table class="configuration table table-bordered">
+ <thead>
+ <tr>
+ <th class="text-left" style="width: 20%">Key</th>
+ <th class="text-left" style="width: 15%">Default</th>
+ <th class="text-left" style="width: 10%">Type</th>
+ <th class="text-left" style="width: 55%">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><h5>pulsar.source.autoCommitCursorInterval</h5></td>
+ <td style="word-wrap: break-word;">5000</td>
+ <td>Long</td>
+ <td>This option is used only when user disabled checkpoint and
using Exclusive or Failover subscription. We would automatically commit the
cursor using the given period (in ms).</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.source.enableAutoAcknowledgeMessage</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>Flink commits the consuming position with pulsar transactions
on checkpoint. However, if you have disabled the flink checkpoint or your
pulsar cluster disabled the transaction, make sure you have set this option to
<code class="highlighter-rouge">true</code>.<br />The source would use pulsar
client's internal mechanism and commit cursor in two ways.<ul><li>For <code
class="highlighter-rouge">Key_Shared</code> and <code
class="highlighter-rouge">Shared</code> subscription: the cursor would be
committed once the message is consumed.</li><li>For <code
class="highlighter-rouge">Exclusive</code> and <code
class="highlighter-rouge">Failover</code> subscription: the cursor would be
committed in a fixed interval.</li></ul></td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.source.maxFetchRecords</h5></td>
+ <td style="word-wrap: break-word;">100</td>
+ <td>Integer</td>
+ <td>The max number of records to fetch to wait when polling. A
longer time increases throughput but also latency. A fetch batch might be
finished earlier because of <code
class="highlighter-rouge">pulsar.source.maxFetchTime</code>.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.source.maxFetchTime</h5></td>
+ <td style="word-wrap: break-word;">10000</td>
+ <td>Long</td>
+ <td>The max time (in ms) to wait when fetching records. A longer
time increases throughput but also latency. A fetch batch might be finished
earlier because of <code
class="highlighter-rouge">pulsar.source.maxFetchRecords</code>.</td>
Review comment:
```suggestion
<td>The maximum time (in ms) to wait when fetching records. A
longer time increases throughput but also latency. A fetch batch might be
finished earlier because of <code
class="highlighter-rouge">pulsar.source.maxFetchRecords</code>.</td>
```
##########
File path: docs/layouts/shortcodes/generated/pulsar_consumer_configuration.html
##########
@@ -0,0 +1,180 @@
+<table class="configuration table table-bordered">
+ <thead>
+ <tr>
+ <th class="text-left" style="width: 20%">Key</th>
+ <th class="text-left" style="width: 15%">Default</th>
+ <th class="text-left" style="width: 10%">Type</th>
+ <th class="text-left" style="width: 55%">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><h5>pulsar.consumer.ackReceiptEnabled</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>Ack will return receipt but does not mean that the message
will not be resent after get receipt.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.ackTimeoutMillis</h5></td>
+ <td style="word-wrap: break-word;">0</td>
+ <td>Long</td>
+ <td>Set the timeout (in ms) for unacknowledged messages, truncated
to the nearest millisecond. The timeout needs to be greater than 1 second.<br
/>By default, the acknowledge timeout is disabled and that means that messages
delivered to a consumer will not be re-delivered unless the consumer
crashes.<br />When enabling ack timeout, if a message is not acknowledged
within the specified timeout it will be re-delivered to the consumer (possibly
to a different consumer in case of a shared subscription).</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.acknowledgementsGroupTimeMicros</h5></td>
+ <td style="word-wrap: break-word;">100000</td>
+ <td>Long</td>
+ <td>Group a consumer acknowledgment for a specified time (in μs).
By default, a consumer uses <code class="highlighter-rouge">100μs</code>
grouping time to send out acknowledgments to a broker. Setting a group time of
<code class="highlighter-rouge">0</code> sends out acknowledgments immediately.
A longer ack group time is more efficient at the expense of a slight increase
in message re-deliveries after a failure.</td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.autoAckOldestChunkedMessageOnQueueFull</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>Buffering large number of outstanding uncompleted chunked
messages can create memory pressure and it can be guarded by providing this
<code class="highlighter-rouge">pulsar.consumer.maxPendingChunkedMessage</code>
threshold. Once consumer reaches this threshold, it drops the outstanding
unchunked-messages by silently acking if <code
class="highlighter-rouge">pulsar.consumer.autoAckOldestChunkedMessageOnQueueFull</code>
is true else it marks them for redelivery.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.autoUpdatePartitions</h5></td>
+ <td style="word-wrap: break-word;">true</td>
+ <td>Boolean</td>
+ <td>If <code class="highlighter-rouge">autoUpdatePartitions</code>
is enabled, a consumer subscribes to partition increase automatically.<br
/>Note: this is only for partitioned consumers.</td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.autoUpdatePartitionsIntervalSeconds</h5></td>
+ <td style="word-wrap: break-word;">60</td>
+ <td>Integer</td>
+ <td>Set the interval (in seconds) of updating partitions. This
only works if autoUpdatePartitions is enabled.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.consumerName</h5></td>
+ <td style="word-wrap: break-word;">(none)</td>
+ <td>String</td>
+ <td>Consumer name is informative and it can be used to identify a
particular consumer instance from the topic stats.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.cryptoFailureAction</h5></td>
+ <td style="word-wrap: break-word;">FAIL</td>
+ <td><p>Enum</p></td>
+ <td>Consumer should take action when it receives a message that
can not be decrypted.<ul><li><code class="highlighter-rouge">FAIL</code>: this
is the default option to fail messages until crypto succeeds.</li><li><code
class="highlighter-rouge">DISCARD</code>: silently acknowledge and not deliver
message to an application.</li><li><code
class="highlighter-rouge">CONSUME</code>: deliver encrypted messages to
applications. It is the application's responsibility to decrypt the
message.</li></ul><br />The decompression of message fails.<br />If messages
contain batch messages, a client is not be able to retrieve individual messages
in batch.<br />Delivered encrypted message contains <code
class="highlighter-rouge">EncryptionContext</code> which contains encryption
and compression information in it using which application can decrypt consumed
message payload.<br /><br />Possible
values:<ul><li>"FAIL"</li><li>"DISCARD"</li><li>"CONSUME"</li></ul></td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.deadLetterPolicy.deadLetterTopic</h5></td>
+ <td style="word-wrap: break-word;">(none)</td>
+ <td>String</td>
+ <td>Name of the dead topic where the failing messages will be
sent.</td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.deadLetterPolicy.maxRedeliverCount</h5></td>
+ <td style="word-wrap: break-word;">0</td>
+ <td>Integer</td>
+ <td>Maximum number of times that a message will be redelivered
before being sent to the dead letter queue.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.deadLetterPolicy.retryLetterTopic</h5></td>
+ <td style="word-wrap: break-word;">(none)</td>
+ <td>String</td>
+ <td>Name of the retry topic where the failing messages will be
sent.</td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.expireTimeOfIncompleteChunkedMessageMillis</h5></td>
+ <td style="word-wrap: break-word;">60000</td>
+ <td>Long</td>
+ <td>If producer fails to publish all the chunks of a message then
consumer can expire incomplete chunks if consumer won't be able to receive all
chunks in expire times (default 1 hour, in ms).</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.maxPendingChunkedMessage</h5></td>
+ <td style="word-wrap: break-word;">10</td>
+ <td>Integer</td>
+ <td>Consumer buffers chunk messages into memory until it receives
all the chunks of the original message. While consuming chunk-messages, chunks
from same message might not be contiguous in the stream and they might be mixed
with other messages' chunks. So, consumer has to maintain multiple buffers to
manage chunks coming from different messages. This mainly happens when multiple
publishers are publishing messages on the topic concurrently or publisher
failed to publish all chunks of the messages.<br />eg: M1-C1, M2-C1, M1-C2,
M2-C2Messages M1-C1 and M1-C2 belong to original message M1, M2-C1 and M2-C2
messages belong to M2 message.<br />Buffering large number of outstanding
uncompleted chunked messages can create memory pressure and it can be guarded
by providing this <code
class="highlighter-rouge">pulsar.consumer.maxPendingChunkedMessage</code>
threshold. Once, consumer reaches this threshold, it drops the outstanding
unchunked-messages by silently acking or asking br
oker to redeliver later by marking it unacked. This behavior can be controlled
by configuration <code
class="highlighter-rouge">pulsar.consumer.autoAckOldestChunkedMessageOnQueueFull</code></td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.maxTotalReceiverQueueSizeAcrossPartitions</h5></td>
+ <td style="word-wrap: break-word;">50000</td>
+ <td>Integer</td>
+ <td>The max total receiver queue size across partitions.<br />This
setting reduces the receiver queue size for individual partitions if the total
receiver queue size exceeds this value.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.negativeAckRedeliveryDelayMicros</h5></td>
+ <td style="word-wrap: break-word;">60000000</td>
+ <td>Long</td>
+ <td>Delay (in μs) to wait before redelivering messages that failed
to be processed.<br />When an application uses <code
class="highlighter-rouge">Consumer.negativeAcknowledge(Message)</code>, failed
messages are redelivered after a fixed timeout.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.poolMessages</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>Enable pooling of messages and the underlying data
buffers.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.priorityLevel</h5></td>
+ <td style="word-wrap: break-word;">0</td>
+ <td>Integer</td>
+ <td>Priority level for a consumer to which a broker gives more
priority while dispatching messages in the shared subscription type.<br />The
broker follows descending priorities. For example, 0=max-priority, 1, 2,...<br
/>In shared subscription mode, the broker first dispatches messages to the max
priority level consumers if they have permits. Otherwise, the broker considers
next priority level consumers.<br /><br />Example 1<br />If a subscription has
consumerA with <code class="highlighter-rouge">priorityLevel</code> 0 and
consumerB with <code class="highlighter-rouge">priorityLevel</code> 1, then the
broker only dispatches messages to consumerA until it runs out permits and then
starts dispatching messages to consumerB.<br />Example 2<br />Consumer
Priority, Level, Permits
+C1, 0, 2
+C2, 0, 1
+C3, 0, 1
+C4, 1, 2
+C5, 1, 1
+<br />Order in which a broker dispatches messages to consumers is: C1, C2, C3,
C1, C4, C5, C4.</td>
Review comment:
```suggestion
<br />The order in which a broker dispatches messages to consumers is: C1,
C2, C3, C1, C4, C5, C4.</td>
```
##########
File path: docs/layouts/shortcodes/generated/pulsar_source_configuration.html
##########
@@ -0,0 +1,54 @@
+<table class="configuration table table-bordered">
+ <thead>
+ <tr>
+ <th class="text-left" style="width: 20%">Key</th>
+ <th class="text-left" style="width: 15%">Default</th>
+ <th class="text-left" style="width: 10%">Type</th>
+ <th class="text-left" style="width: 55%">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><h5>pulsar.source.autoCommitCursorInterval</h5></td>
+ <td style="word-wrap: break-word;">5000</td>
+ <td>Long</td>
+ <td>This option is used only when user disabled checkpoint and
using Exclusive or Failover subscription. We would automatically commit the
cursor using the given period (in ms).</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.source.enableAutoAcknowledgeMessage</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>Flink commits the consuming position with pulsar transactions
on checkpoint. However, if you have disabled the flink checkpoint or your
pulsar cluster disabled the transaction, make sure you have set this option to
<code class="highlighter-rouge">true</code>.<br />The source would use pulsar
client's internal mechanism and commit cursor in two ways.<ul><li>For <code
class="highlighter-rouge">Key_Shared</code> and <code
class="highlighter-rouge">Shared</code> subscription: the cursor would be
committed once the message is consumed.</li><li>For <code
class="highlighter-rouge">Exclusive</code> and <code
class="highlighter-rouge">Failover</code> subscription: the cursor would be
committed in a fixed interval.</li></ul></td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.source.maxFetchRecords</h5></td>
+ <td style="word-wrap: break-word;">100</td>
+ <td>Integer</td>
+ <td>The max number of records to fetch to wait when polling. A
longer time increases throughput but also latency. A fetch batch might be
finished earlier because of <code
class="highlighter-rouge">pulsar.source.maxFetchTime</code>.</td>
Review comment:
```suggestion
<td>The maximum number of records to fetch to wait when polling.
A longer time increases throughput but also latency. A fetch batch might be
finished earlier because of <code
class="highlighter-rouge">pulsar.source.maxFetchTime</code>.</td>
```
##########
File path: docs/layouts/shortcodes/generated/pulsar_consumer_configuration.html
##########
@@ -0,0 +1,180 @@
+<table class="configuration table table-bordered">
+ <thead>
+ <tr>
+ <th class="text-left" style="width: 20%">Key</th>
+ <th class="text-left" style="width: 15%">Default</th>
+ <th class="text-left" style="width: 10%">Type</th>
+ <th class="text-left" style="width: 55%">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><h5>pulsar.consumer.ackReceiptEnabled</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>Ack will return receipt but does not mean that the message
will not be resent after get receipt.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.ackTimeoutMillis</h5></td>
+ <td style="word-wrap: break-word;">0</td>
+ <td>Long</td>
+ <td>Set the timeout (in ms) for unacknowledged messages, truncated
to the nearest millisecond. The timeout needs to be greater than 1 second.<br
/>By default, the acknowledge timeout is disabled and that means that messages
delivered to a consumer will not be re-delivered unless the consumer
crashes.<br />When enabling ack timeout, if a message is not acknowledged
within the specified timeout it will be re-delivered to the consumer (possibly
to a different consumer in case of a shared subscription).</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.acknowledgementsGroupTimeMicros</h5></td>
+ <td style="word-wrap: break-word;">100000</td>
+ <td>Long</td>
+ <td>Group a consumer acknowledgment for a specified time (in μs).
By default, a consumer uses <code class="highlighter-rouge">100μs</code>
grouping time to send out acknowledgments to a broker. Setting a group time of
<code class="highlighter-rouge">0</code> sends out acknowledgments immediately.
A longer ack group time is more efficient at the expense of a slight increase
in message re-deliveries after a failure.</td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.autoAckOldestChunkedMessageOnQueueFull</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>Buffering large number of outstanding uncompleted chunked
messages can create memory pressure and it can be guarded by providing this
<code class="highlighter-rouge">pulsar.consumer.maxPendingChunkedMessage</code>
threshold. Once consumer reaches this threshold, it drops the outstanding
unchunked-messages by silently acking if <code
class="highlighter-rouge">pulsar.consumer.autoAckOldestChunkedMessageOnQueueFull</code>
is true else it marks them for redelivery.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.autoUpdatePartitions</h5></td>
+ <td style="word-wrap: break-word;">true</td>
+ <td>Boolean</td>
+ <td>If <code class="highlighter-rouge">autoUpdatePartitions</code>
is enabled, a consumer subscribes to partition increase automatically.<br
/>Note: this is only for partitioned consumers.</td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.autoUpdatePartitionsIntervalSeconds</h5></td>
+ <td style="word-wrap: break-word;">60</td>
+ <td>Integer</td>
+ <td>Set the interval (in seconds) of updating partitions. This
only works if autoUpdatePartitions is enabled.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.consumerName</h5></td>
+ <td style="word-wrap: break-word;">(none)</td>
+ <td>String</td>
+ <td>Consumer name is informative and it can be used to identify a
particular consumer instance from the topic stats.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.cryptoFailureAction</h5></td>
+ <td style="word-wrap: break-word;">FAIL</td>
+ <td><p>Enum</p></td>
+ <td>Consumer should take action when it receives a message that
can not be decrypted.<ul><li><code class="highlighter-rouge">FAIL</code>: this
is the default option to fail messages until crypto succeeds.</li><li><code
class="highlighter-rouge">DISCARD</code>: silently acknowledge and not deliver
message to an application.</li><li><code
class="highlighter-rouge">CONSUME</code>: deliver encrypted messages to
applications. It is the application's responsibility to decrypt the
message.</li></ul><br />The decompression of message fails.<br />If messages
contain batch messages, a client is not be able to retrieve individual messages
in batch.<br />Delivered encrypted message contains <code
class="highlighter-rouge">EncryptionContext</code> which contains encryption
and compression information in it using which application can decrypt consumed
message payload.<br /><br />Possible
values:<ul><li>"FAIL"</li><li>"DISCARD"</li><li>"CONSUME"</li></ul></td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.deadLetterPolicy.deadLetterTopic</h5></td>
+ <td style="word-wrap: break-word;">(none)</td>
+ <td>String</td>
+ <td>Name of the dead topic where the failing messages will be
sent.</td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.deadLetterPolicy.maxRedeliverCount</h5></td>
+ <td style="word-wrap: break-word;">0</td>
+ <td>Integer</td>
+ <td>Maximum number of times that a message will be redelivered
before being sent to the dead letter queue.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.deadLetterPolicy.retryLetterTopic</h5></td>
+ <td style="word-wrap: break-word;">(none)</td>
+ <td>String</td>
+ <td>Name of the retry topic where the failing messages will be
sent.</td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.expireTimeOfIncompleteChunkedMessageMillis</h5></td>
+ <td style="word-wrap: break-word;">60000</td>
+ <td>Long</td>
+ <td>If producer fails to publish all the chunks of a message then
consumer can expire incomplete chunks if consumer won't be able to receive all
chunks in expire times (default 1 hour, in ms).</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.maxPendingChunkedMessage</h5></td>
+ <td style="word-wrap: break-word;">10</td>
+ <td>Integer</td>
+ <td>Consumer buffers chunk messages into memory until it receives
all the chunks of the original message. While consuming chunk-messages, chunks
from same message might not be contiguous in the stream and they might be mixed
with other messages' chunks. So, consumer has to maintain multiple buffers to
manage chunks coming from different messages. This mainly happens when multiple
publishers are publishing messages on the topic concurrently or publisher
failed to publish all chunks of the messages.<br />eg: M1-C1, M2-C1, M1-C2,
M2-C2Messages M1-C1 and M1-C2 belong to original message M1, M2-C1 and M2-C2
messages belong to M2 message.<br />Buffering large number of outstanding
uncompleted chunked messages can create memory pressure and it can be guarded
by providing this <code
class="highlighter-rouge">pulsar.consumer.maxPendingChunkedMessage</code>
threshold. Once, consumer reaches this threshold, it drops the outstanding
unchunked-messages by silently acking or asking br
oker to redeliver later by marking it unacked. This behavior can be controlled
by configuration <code
class="highlighter-rouge">pulsar.consumer.autoAckOldestChunkedMessageOnQueueFull</code></td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.maxTotalReceiverQueueSizeAcrossPartitions</h5></td>
+ <td style="word-wrap: break-word;">50000</td>
+ <td>Integer</td>
+ <td>The max total receiver queue size across partitions.<br />This
setting reduces the receiver queue size for individual partitions if the total
receiver queue size exceeds this value.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.negativeAckRedeliveryDelayMicros</h5></td>
+ <td style="word-wrap: break-word;">60000000</td>
+ <td>Long</td>
+ <td>Delay (in μs) to wait before redelivering messages that failed
to be processed.<br />When an application uses <code
class="highlighter-rouge">Consumer.negativeAcknowledge(Message)</code>, failed
messages are redelivered after a fixed timeout.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.poolMessages</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>Enable pooling of messages and the underlying data
buffers.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.priorityLevel</h5></td>
+ <td style="word-wrap: break-word;">0</td>
+ <td>Integer</td>
+ <td>Priority level for a consumer to which a broker gives more
priority while dispatching messages in the shared subscription type.<br />The
broker follows descending priorities. For example, 0=max-priority, 1, 2,...<br
/>In shared subscription mode, the broker first dispatches messages to the max
priority level consumers if they have permits. Otherwise, the broker considers
next priority level consumers.<br /><br />Example 1<br />If a subscription has
consumerA with <code class="highlighter-rouge">priorityLevel</code> 0 and
consumerB with <code class="highlighter-rouge">priorityLevel</code> 1, then the
broker only dispatches messages to consumerA until it runs out permits and then
starts dispatching messages to consumerB.<br />Example 2<br />Consumer
Priority, Level, Permits
+C1, 0, 2
+C2, 0, 1
+C3, 0, 1
+C4, 1, 2
+C5, 1, 1
+<br />Order in which a broker dispatches messages to consumers is: C1, C2, C3,
C1, C4, C5, C4.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.properties</h5></td>
+ <td style="word-wrap: break-word;"></td>
+ <td>Map</td>
+ <td>A name or value property of this consumer. <code
class="highlighter-rouge">properties</code> is application defined metadata
attached to a consumer. When getting a topic stats, associate this metadata
with the consumer stats for easier identification.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.readCompacted</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>If enabling <code
class="highlighter-rouge">readCompacted</code>, a consumer reads messages from
a compacted topic rather than reading a full message backlog of a topic.<br />A
consumer only sees the latest value for each key in the compacted topic, up
until reaching the point in the topic message when compacting backlog. Beyond
that point, send messages as normal.<br />Only enabling <code
class="highlighter-rouge">readCompacted</code> on subscriptions to persistent
topics, which have a single active consumer (like failure or exclusive
subscriptions).<br />Attempting to enable it on subscriptions to non-persistent
topics or on shared subscriptions leads to a subscription call throwing a <code
class="highlighter-rouge">PulsarClientException</code>.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.receiverQueueSize</h5></td>
+ <td style="word-wrap: break-word;">1000</td>
+ <td>Integer</td>
+ <td>Size of a consumer's receiver queue.<br />For example, the
number of messages accumulated by a consumer before an application calls <code
class="highlighter-rouge">Receive</code>.<br />A value higher than the default
value increases consumer throughput, though at the expense of more memory
utilization.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.replicateSubscriptionState</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>If <code
class="highlighter-rouge">replicateSubscriptionState</code> is enabled, a
subscription state is replicated to geo-replicated clusters.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.retryEnable</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>If enabled, the consumer will auto retry messages.</td>
Review comment:
```suggestion
<td>If enabled, the consumer will automatically retry
messages.</td>
```
##########
File path: docs/layouts/shortcodes/generated/pulsar_consumer_configuration.html
##########
@@ -0,0 +1,180 @@
+<table class="configuration table table-bordered">
+ <thead>
+ <tr>
+ <th class="text-left" style="width: 20%">Key</th>
+ <th class="text-left" style="width: 15%">Default</th>
+ <th class="text-left" style="width: 10%">Type</th>
+ <th class="text-left" style="width: 55%">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><h5>pulsar.consumer.ackReceiptEnabled</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>Ack will return receipt but does not mean that the message
will not be resent after get receipt.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.ackTimeoutMillis</h5></td>
+ <td style="word-wrap: break-word;">0</td>
+ <td>Long</td>
+ <td>Set the timeout (in ms) for unacknowledged messages, truncated
to the nearest millisecond. The timeout needs to be greater than 1 second.<br
/>By default, the acknowledge timeout is disabled and that means that messages
delivered to a consumer will not be re-delivered unless the consumer
crashes.<br />When enabling ack timeout, if a message is not acknowledged
within the specified timeout it will be re-delivered to the consumer (possibly
to a different consumer in case of a shared subscription).</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.acknowledgementsGroupTimeMicros</h5></td>
+ <td style="word-wrap: break-word;">100000</td>
+ <td>Long</td>
+ <td>Group a consumer acknowledgment for a specified time (in μs).
By default, a consumer uses <code class="highlighter-rouge">100μs</code>
grouping time to send out acknowledgments to a broker. Setting a group time of
<code class="highlighter-rouge">0</code> sends out acknowledgments immediately.
A longer ack group time is more efficient at the expense of a slight increase
in message re-deliveries after a failure.</td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.autoAckOldestChunkedMessageOnQueueFull</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>Buffering large number of outstanding uncompleted chunked
messages can create memory pressure and it can be guarded by providing this
<code class="highlighter-rouge">pulsar.consumer.maxPendingChunkedMessage</code>
threshold. Once consumer reaches this threshold, it drops the outstanding
unchunked-messages by silently acking if <code
class="highlighter-rouge">pulsar.consumer.autoAckOldestChunkedMessageOnQueueFull</code>
is true else it marks them for redelivery.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.autoUpdatePartitions</h5></td>
+ <td style="word-wrap: break-word;">true</td>
+ <td>Boolean</td>
+ <td>If <code class="highlighter-rouge">autoUpdatePartitions</code>
is enabled, a consumer subscribes to partition increase automatically.<br
/>Note: this is only for partitioned consumers.</td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.autoUpdatePartitionsIntervalSeconds</h5></td>
+ <td style="word-wrap: break-word;">60</td>
+ <td>Integer</td>
+ <td>Set the interval (in seconds) of updating partitions. This
only works if autoUpdatePartitions is enabled.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.consumerName</h5></td>
+ <td style="word-wrap: break-word;">(none)</td>
+ <td>String</td>
+ <td>Consumer name is informative and it can be used to identify a
particular consumer instance from the topic stats.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.cryptoFailureAction</h5></td>
+ <td style="word-wrap: break-word;">FAIL</td>
+ <td><p>Enum</p></td>
+ <td>Consumer should take action when it receives a message that
can not be decrypted.<ul><li><code class="highlighter-rouge">FAIL</code>: this
is the default option to fail messages until crypto succeeds.</li><li><code
class="highlighter-rouge">DISCARD</code>: silently acknowledge and not deliver
message to an application.</li><li><code
class="highlighter-rouge">CONSUME</code>: deliver encrypted messages to
applications. It is the application's responsibility to decrypt the
message.</li></ul><br />The decompression of message fails.<br />If messages
contain batch messages, a client is not be able to retrieve individual messages
in batch.<br />Delivered encrypted message contains <code
class="highlighter-rouge">EncryptionContext</code> which contains encryption
and compression information in it using which application can decrypt consumed
message payload.<br /><br />Possible
values:<ul><li>"FAIL"</li><li>"DISCARD"</li><li>"CONSUME"</li></ul></td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.deadLetterPolicy.deadLetterTopic</h5></td>
+ <td style="word-wrap: break-word;">(none)</td>
+ <td>String</td>
+ <td>Name of the dead topic where the failing messages will be
sent.</td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.deadLetterPolicy.maxRedeliverCount</h5></td>
+ <td style="word-wrap: break-word;">0</td>
+ <td>Integer</td>
+ <td>Maximum number of times that a message will be redelivered
before being sent to the dead letter queue.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.deadLetterPolicy.retryLetterTopic</h5></td>
+ <td style="word-wrap: break-word;">(none)</td>
+ <td>String</td>
+ <td>Name of the retry topic where the failing messages will be
sent.</td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.expireTimeOfIncompleteChunkedMessageMillis</h5></td>
+ <td style="word-wrap: break-word;">60000</td>
+ <td>Long</td>
+ <td>If producer fails to publish all the chunks of a message then
consumer can expire incomplete chunks if consumer won't be able to receive all
chunks in expire times (default 1 hour, in ms).</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.maxPendingChunkedMessage</h5></td>
+ <td style="word-wrap: break-word;">10</td>
+ <td>Integer</td>
+ <td>Consumer buffers chunk messages into memory until it receives
all the chunks of the original message. While consuming chunk-messages, chunks
from same message might not be contiguous in the stream and they might be mixed
with other messages' chunks. So, consumer has to maintain multiple buffers to
manage chunks coming from different messages. This mainly happens when multiple
publishers are publishing messages on the topic concurrently or publisher
failed to publish all chunks of the messages.<br />eg: M1-C1, M2-C1, M1-C2,
M2-C2Messages M1-C1 and M1-C2 belong to original message M1, M2-C1 and M2-C2
messages belong to M2 message.<br />Buffering large number of outstanding
uncompleted chunked messages can create memory pressure and it can be guarded
by providing this <code
class="highlighter-rouge">pulsar.consumer.maxPendingChunkedMessage</code>
threshold. Once, consumer reaches this threshold, it drops the outstanding
unchunked-messages by silently acking or asking br
oker to redeliver later by marking it unacked. This behavior can be controlled
by configuration <code
class="highlighter-rouge">pulsar.consumer.autoAckOldestChunkedMessageOnQueueFull</code></td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.maxTotalReceiverQueueSizeAcrossPartitions</h5></td>
+ <td style="word-wrap: break-word;">50000</td>
+ <td>Integer</td>
+ <td>The max total receiver queue size across partitions.<br />This
setting reduces the receiver queue size for individual partitions if the total
receiver queue size exceeds this value.</td>
Review comment:
```suggestion
<td>The maximum total receiver queue size across partitions.<br
/>This setting reduces the receiver queue size for individual partitions if the
total receiver queue size exceeds this value.</td>
```
##########
File path: docs/layouts/shortcodes/generated/pulsar_consumer_configuration.html
##########
@@ -0,0 +1,180 @@
+<table class="configuration table table-bordered">
+ <thead>
+ <tr>
+ <th class="text-left" style="width: 20%">Key</th>
+ <th class="text-left" style="width: 15%">Default</th>
+ <th class="text-left" style="width: 10%">Type</th>
+ <th class="text-left" style="width: 55%">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><h5>pulsar.consumer.ackReceiptEnabled</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>Ack will return receipt but does not mean that the message
will not be resent after get receipt.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.ackTimeoutMillis</h5></td>
+ <td style="word-wrap: break-word;">0</td>
+ <td>Long</td>
+ <td>Set the timeout (in ms) for unacknowledged messages, truncated
to the nearest millisecond. The timeout needs to be greater than 1 second.<br
/>By default, the acknowledge timeout is disabled and that means that messages
delivered to a consumer will not be re-delivered unless the consumer
crashes.<br />When enabling ack timeout, if a message is not acknowledged
within the specified timeout it will be re-delivered to the consumer (possibly
to a different consumer in case of a shared subscription).</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.acknowledgementsGroupTimeMicros</h5></td>
+ <td style="word-wrap: break-word;">100000</td>
+ <td>Long</td>
+ <td>Group a consumer acknowledgment for a specified time (in μs).
By default, a consumer uses <code class="highlighter-rouge">100μs</code>
grouping time to send out acknowledgments to a broker. Setting a group time of
<code class="highlighter-rouge">0</code> sends out acknowledgments immediately.
A longer ack group time is more efficient at the expense of a slight increase
in message re-deliveries after a failure.</td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.autoAckOldestChunkedMessageOnQueueFull</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>Buffering large number of outstanding uncompleted chunked
messages can create memory pressure and it can be guarded by providing this
<code class="highlighter-rouge">pulsar.consumer.maxPendingChunkedMessage</code>
threshold. Once consumer reaches this threshold, it drops the outstanding
unchunked-messages by silently acking if <code
class="highlighter-rouge">pulsar.consumer.autoAckOldestChunkedMessageOnQueueFull</code>
is true else it marks them for redelivery.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.autoUpdatePartitions</h5></td>
+ <td style="word-wrap: break-word;">true</td>
+ <td>Boolean</td>
+ <td>If <code class="highlighter-rouge">autoUpdatePartitions</code>
is enabled, a consumer subscribes to partition increase automatically.<br
/>Note: this is only for partitioned consumers.</td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.autoUpdatePartitionsIntervalSeconds</h5></td>
+ <td style="word-wrap: break-word;">60</td>
+ <td>Integer</td>
+ <td>Set the interval (in seconds) of updating partitions. This
only works if autoUpdatePartitions is enabled.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.consumerName</h5></td>
+ <td style="word-wrap: break-word;">(none)</td>
+ <td>String</td>
+ <td>Consumer name is informative and it can be used to identify a
particular consumer instance from the topic stats.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.cryptoFailureAction</h5></td>
+ <td style="word-wrap: break-word;">FAIL</td>
+ <td><p>Enum</p></td>
+ <td>Consumer should take action when it receives a message that
can not be decrypted.<ul><li><code class="highlighter-rouge">FAIL</code>: this
is the default option to fail messages until crypto succeeds.</li><li><code
class="highlighter-rouge">DISCARD</code>: silently acknowledge and not deliver
message to an application.</li><li><code
class="highlighter-rouge">CONSUME</code>: deliver encrypted messages to
applications. It is the application's responsibility to decrypt the
message.</li></ul><br />The decompression of message fails.<br />If messages
contain batch messages, a client is not be able to retrieve individual messages
in batch.<br />Delivered encrypted message contains <code
class="highlighter-rouge">EncryptionContext</code> which contains encryption
and compression information in it using which application can decrypt consumed
message payload.<br /><br />Possible
values:<ul><li>"FAIL"</li><li>"DISCARD"</li><li>"CONSUME"</li></ul></td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.deadLetterPolicy.deadLetterTopic</h5></td>
+ <td style="word-wrap: break-word;">(none)</td>
+ <td>String</td>
+ <td>Name of the dead topic where the failing messages will be
sent.</td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.deadLetterPolicy.maxRedeliverCount</h5></td>
+ <td style="word-wrap: break-word;">0</td>
+ <td>Integer</td>
+ <td>Maximum number of times that a message will be redelivered
before being sent to the dead letter queue.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.deadLetterPolicy.retryLetterTopic</h5></td>
+ <td style="word-wrap: break-word;">(none)</td>
+ <td>String</td>
+ <td>Name of the retry topic where the failing messages will be
sent.</td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.expireTimeOfIncompleteChunkedMessageMillis</h5></td>
+ <td style="word-wrap: break-word;">60000</td>
+ <td>Long</td>
+ <td>If producer fails to publish all the chunks of a message then
consumer can expire incomplete chunks if consumer won't be able to receive all
chunks in expire times (default 1 hour, in ms).</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.maxPendingChunkedMessage</h5></td>
+ <td style="word-wrap: break-word;">10</td>
+ <td>Integer</td>
+ <td>Consumer buffers chunk messages into memory until it receives
all the chunks of the original message. While consuming chunk-messages, chunks
from same message might not be contiguous in the stream and they might be mixed
with other messages' chunks. So, consumer has to maintain multiple buffers to
manage chunks coming from different messages. This mainly happens when multiple
publishers are publishing messages on the topic concurrently or publisher
failed to publish all chunks of the messages.<br />eg: M1-C1, M2-C1, M1-C2,
M2-C2Messages M1-C1 and M1-C2 belong to original message M1, M2-C1 and M2-C2
messages belong to M2 message.<br />Buffering large number of outstanding
uncompleted chunked messages can create memory pressure and it can be guarded
by providing this <code
class="highlighter-rouge">pulsar.consumer.maxPendingChunkedMessage</code>
threshold. Once, consumer reaches this threshold, it drops the outstanding
unchunked-messages by silently acking or asking br
oker to redeliver later by marking it unacked. This behavior can be controlled
by configuration <code
class="highlighter-rouge">pulsar.consumer.autoAckOldestChunkedMessageOnQueueFull</code></td>
+ </tr>
+ <tr>
+
<td><h5>pulsar.consumer.maxTotalReceiverQueueSizeAcrossPartitions</h5></td>
+ <td style="word-wrap: break-word;">50000</td>
+ <td>Integer</td>
+ <td>The max total receiver queue size across partitions.<br />This
setting reduces the receiver queue size for individual partitions if the total
receiver queue size exceeds this value.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.negativeAckRedeliveryDelayMicros</h5></td>
+ <td style="word-wrap: break-word;">60000000</td>
+ <td>Long</td>
+ <td>Delay (in μs) to wait before redelivering messages that failed
to be processed.<br />When an application uses <code
class="highlighter-rouge">Consumer.negativeAcknowledge(Message)</code>, failed
messages are redelivered after a fixed timeout.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.poolMessages</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>Enable pooling of messages and the underlying data
buffers.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.priorityLevel</h5></td>
+ <td style="word-wrap: break-word;">0</td>
+ <td>Integer</td>
+ <td>Priority level for a consumer to which a broker gives more
priority while dispatching messages in the shared subscription type.<br />The
broker follows descending priorities. For example, 0=max-priority, 1, 2,...<br
/>In shared subscription mode, the broker first dispatches messages to the max
priority level consumers if they have permits. Otherwise, the broker considers
next priority level consumers.<br /><br />Example 1<br />If a subscription has
consumerA with <code class="highlighter-rouge">priorityLevel</code> 0 and
consumerB with <code class="highlighter-rouge">priorityLevel</code> 1, then the
broker only dispatches messages to consumerA until it runs out permits and then
starts dispatching messages to consumerB.<br />Example 2<br />Consumer
Priority, Level, Permits
+C1, 0, 2
+C2, 0, 1
+C3, 0, 1
+C4, 1, 2
+C5, 1, 1
+<br />Order in which a broker dispatches messages to consumers is: C1, C2, C3,
C1, C4, C5, C4.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.properties</h5></td>
+ <td style="word-wrap: break-word;"></td>
+ <td>Map</td>
+ <td>A name or value property of this consumer. <code
class="highlighter-rouge">properties</code> is application defined metadata
attached to a consumer. When getting a topic stats, associate this metadata
with the consumer stats for easier identification.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.readCompacted</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>If enabling <code
class="highlighter-rouge">readCompacted</code>, a consumer reads messages from
a compacted topic rather than reading a full message backlog of a topic.<br />A
consumer only sees the latest value for each key in the compacted topic, up
until reaching the point in the topic message when compacting backlog. Beyond
that point, send messages as normal.<br />Only enabling <code
class="highlighter-rouge">readCompacted</code> on subscriptions to persistent
topics, which have a single active consumer (like failure or exclusive
subscriptions).<br />Attempting to enable it on subscriptions to non-persistent
topics or on shared subscriptions leads to a subscription call throwing a <code
class="highlighter-rouge">PulsarClientException</code>.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.receiverQueueSize</h5></td>
+ <td style="word-wrap: break-word;">1000</td>
+ <td>Integer</td>
+ <td>Size of a consumer's receiver queue.<br />For example, the
number of messages accumulated by a consumer before an application calls <code
class="highlighter-rouge">Receive</code>.<br />A value higher than the default
value increases consumer throughput, though at the expense of more memory
utilization.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.replicateSubscriptionState</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>If <code
class="highlighter-rouge">replicateSubscriptionState</code> is enabled, a
subscription state is replicated to geo-replicated clusters.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.retryEnable</h5></td>
+ <td style="word-wrap: break-word;">false</td>
+ <td>Boolean</td>
+ <td>If enabled, the consumer will auto retry messages.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.subscriptionInitialPosition</h5></td>
+ <td style="word-wrap: break-word;">Latest</td>
+ <td><p>Enum</p></td>
+ <td>Initial position at which to set cursor when subscribing to a
topic at first time.<br /><br />Possible
values:<ul><li>"Latest"</li><li>"Earliest"</li></ul></td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.subscriptionMode</h5></td>
+ <td style="word-wrap: break-word;">Durable</td>
+ <td><p>Enum</p></td>
+ <td>Select the subscription mode to be used when subscribing to
the topic.<ul><li><code class="highlighter-rouge">Durable</code>: Make the
subscription to be backed by a durable cursor that will retain messages and
persist the current position.</li><li><code
class="highlighter-rouge">NonDurable</code>: Lightweight subscription mode that
doesn't have a durable cursor associated</li></ul><br /><br />Possible
values:<ul><li>"Durable"</li><li>"NonDurable"</li></ul></td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.subscriptionName</h5></td>
+ <td style="word-wrap: break-word;">(none)</td>
+ <td>String</td>
+ <td>Specify the subscription name for this consumer. This argument
is required when constructing the consumer.</td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.subscriptionType</h5></td>
+ <td style="word-wrap: break-word;">Shared</td>
+ <td><p>Enum</p></td>
+ <td>Subscription type.<br /><br />Four subscription types are
available:<ul><li>Exclusive</li><li>Failover</li><li>Shared</li><li>Key_Shared</li></ul><br
/><br />Possible
values:<ul><li>"Exclusive"</li><li>"Shared"</li><li>"Failover"</li><li>"Key_Shared"</li></ul></td>
+ </tr>
+ <tr>
+ <td><h5>pulsar.consumer.tickDurationMillis</h5></td>
+ <td style="word-wrap: break-word;">1000</td>
+ <td>Long</td>
+ <td>Granularity (in ms) of the ack-timeout redelivery.<br />Using
an higher <code class="highlighter-rouge">tickDurationMillis</code> reduces the
memory overhead to track messages when setting ack-timeout to a bigger value
(for example, 1 hour).</td>
Review comment:
```suggestion
<td>Granularity (in ms) of the ack-timeout redelivery.<br />A
greater (for example, 1 hour) <code
class="highlighter-rouge">tickDurationMillis</code> reduces the memory overhead
to track messages.</td>
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]