Advanced features
You can use the following advanced features with transactions in Pulsar.
Ack batch messages
If you want to acknowledge batch messages with transactions, set acknowledgmentAtBatchIndexLevelEnabled
to true
in the broker.conf or standalone.conf file.
acknowledgmentAtBatchIndexLevelEnabled=true
This example enables batch messages ack in transactions in the consumer builder.
Consumer<byte[]> consumer = pulsarClient
.newConsumer()
.topic(transferTopic)
.subscriptionName("transaction-sub")
.subscriptionInitialPosition(SubscriptionInitialPosition.Earliest)
.subscriptionType(SubscriptionType.Shared)
.enableBatchIndexAcknowledgment(true) // enable batch index acknowledgment
.subscribe();
Enable authentication
If you want to enable authentication with transactions, follow the steps below.
Grant “consume” permission to the
persistent://pulsar/system/transaction_coordinator_assign
topic.Configure authentication in a Pulsar client.
Guarantee exactly-once semantics
If you want to guarantee exactly-once semantics with transactions, you can enable message deduplication at the broker, namespace, or topic level.
Related topics
- To get up quickly, see Pulsar transactions - Get started.