Configuring consumer options | Laravel Kafka              

 [ K Laravel Kafka ](/) [Docs](/docs) [Blog](https://laravelkafka.com/blog) [GitHub](https://github.com/mateusjunges/laravel-kafka) 

     Search ⌘K       [    Login with GitHub Login ](https://laravelkafka.com/oauth/github/redirect) 

    Docs for version         

   selected

 v3.0     

 v2.13     

 v2.12     

 v2.11     

 v2.10     

 v2.9     

 v2.8     

 v1.13   

- - [ Introduction ](/docs/v1.13/introduction)
    - [ Requirements ](/docs/v1.13/requirements)
    - [ Installation and Setup ](/docs/v1.13/installation-and-setup)
    - [ Questions and issues ](/docs/v1.13/questions-and-issues)
    - [ Changelog ](/docs/v1.13/changelog)
    - [ Upgrade Guide ](/docs/v1.13/upgrade-guide)
- Producing messages
    ------------------

    - [ Producing messages ](/docs/v1.13/producing-messages/producing-messages)
    - [ Configuring your kafka producer ](/docs/v1.13/producing-messages/configuring-producers)
    - [ Configuring message payload ](/docs/v1.13/producing-messages/configuring-message-payload)
    - [ Custom serializers ](/docs/v1.13/producing-messages/custom-serializers)
    - [ Publishing to kafka ](/docs/v1.13/producing-messages/publishing-to-kafka)
    - [ Producing message batch to kafka ](/docs/v1.13/producing-messages/producing-message-batch-to-kafka)
- Consuming messages
    ------------------

    - [ Creating a kafka consumer ](/docs/v1.13/consuming-messages/creating-consumer)
    - [ Subscribing to kafka topics ](/docs/v1.13/consuming-messages/subscribing-to-kafka-topics)
    - [ Consumer groups ](/docs/v1.13/consuming-messages/consumer-groups)
    - [ Message handlers ](/docs/v1.13/consuming-messages/message-handlers)
    - [ Configuring consumer options ](/docs/v1.13/consuming-messages/configuring-consumer-options)
    - [ Custom deserializers ](/docs/v1.13/consuming-messages/custom-deserializers)
    - [ Consuming messages ](/docs/v1.13/consuming-messages/consuming-messages)
    - [ Handling message batch ](/docs/v1.13/consuming-messages/handling-message-batch)
    - [ Class structure ](/docs/v1.13/consuming-messages/class-structure)
- Advanced usage
    --------------

    - [ Replacing the default serializer/deserializer ](/docs/v1.13/advanced-usage/replacing-default-serializer)
    - [ Graceful shutdown ](/docs/v1.13/advanced-usage/graceful-shutdown)
    - [ SASL Authentication ](/docs/v1.13/advanced-usage/sasl-authentication)
    - [ Custom Committers ](/docs/v1.13/advanced-usage/custom-committers)
    - [ Middlewares ](/docs/v1.13/advanced-usage/middlewares)
    - [ Stop consumer after last messages ](/docs/v1.13/advanced-usage/stop-consumer-after-last-message)
    - [ Writing custom loggers ](/docs/v1.13/advanced-usage/custom-loggers)
    - [ Setting global configurations ](/docs/v1.13/advanced-usage/setting-global-configuration)
- Testing
    -------

    - [ Kafka fake ](/docs/v1.13/testing/fake)
    - [ Assert Published ](/docs/v1.13/testing/assert-published)
    - [ Assert published On ](/docs/v1.13/testing/assert-published-on)
    - [ Assert nothing published ](/docs/v1.13/testing/assert-nothing-published)
    - [ Assert published times ](/docs/v1.13/testing/assert-published-times)
    - [ Assert published on times ](/docs/v1.13/testing/assert-published-on-times)
    - [ Mocking your kafka consumer ](/docs/v1.13/testing/mocking-your-kafka-consumer)

  Configuring consumer options 
==============================

The `ConsumerBuilder` offers you some few configuration options:

### [](#content-configuring-a-dead-letter-queue "Permalink")Configuring a dead letter queue

In kafka, a Dead Letter Queue (or DLQ), is a simple kafka topic in the kafka cluster which acts as the destination for messages that were not able to make it to the desired destination due to some error.

To create a `dlq` in this package, you can use the `withDlq` method. If you don't specify the DLQ topic name, it will be created based on the topic you are consuming, adding the `-dlq` suffix to the topic name.

         ```
$consumer = \Junges\Kafka\Facades\Kafka::createConsumer()->subscribe('topic')->withDlq();

//Or, specifying the dlq topic name:
$consumer = \Junges\Kafka\Facades\Kafka::createConsumer()->subscribe('topic')->withDlq('your-dlq-topic-name')
```

### [](#content-using-auto-commit "Permalink")Using auto commit

The auto-commit check is called in every poll and it checks that the time elapsed is greater than the configured time. To enable auto commit, use the `withAutoCommit` method:

         ```
$consumer = \Junges\Kafka\Facades\Kafka::createConsumer()->withAutoCommit();
```

### [](#content-configuring-max-messages-to-be-consumed "Permalink")Configuring max messages to be consumed

If you want to consume a limited amount of messages, you can use the `withMaxMessages` method to set the max number of messages to be consumed by a kafka consumer:

         ```
$consumer = \Junges\Kafka\Facades\Kafka::createConsumer()->withMaxMessages(2);
```

### [](#content-configuring-the-max-time-when-a-consumer-can-process-messages "Permalink")Configuring the max time when a consumer can process messages

If you want to consume a limited amount of time, you can use the `withMaxTime` method to set the max number of seconds for kafka consumer to process messages:

         ```
$consumer = \Junges\Kafka\Facades\Kafka::createConsumer()->withMaxTime(3600);
```

### [](#content-setting-kafka-configuration-options "Permalink")Setting Kafka configuration options

To set configuration options, you can use two methods: `withOptions`, passing an array of option and option value or, using the `withOption method and passing two arguments, the option name and the option value.

         ```
$consumer = \Junges\Kafka\Facades\Kafka::createConsumer()
    ->withOptions([
        'option-name' => 'option-value'
    ]);
// Or:
$consumer = \Junges\Kafka\Facades\Kafka::createConsumer()
    ->withOption('option-name', 'option-value');
```

Previous

 [    Message handlers ](https://laravelkafka.com/docs/v1.13/consuming-messages/message-handlers) 

Next

 [ Custom deserializers    ](https://laravelkafka.com/docs/v1.13/consuming-messages/custom-deserializers) 

 Sponsors

 [ version="1.0" encoding="UTF-8"?       EasyCal ](https://easycal.app/) 

 [       Search  ⌘ K   ](https://typesense.org/)
