Reference
Specific options when creating or updating a Apache Kafka service
You can find all the specific options for Apache Kafka by using the CLI help:
exo dbaas create --help-kafka
--kafka-connect-settings Kafka Connect configuration settings (JSON format)
--kafka-enable-cert-auth enable certificate-based authentication method
--kafka-enable-kafka-connect enable Kafka Connect
--kafka-enable-kafka-rest enable Kafka REST
--kafka-enable-sasl-auth enable SASL-based authentication method
--kafka-enable-schema-registry enable Schema Registry
--kafka-ip-filter allow incoming connections from CIDR address block
--kafka-rest-settings Kafka REST configuration settings (JSON format)
--kafka-schema-registry-settings Schema Registry configuration settings (JSON format)
--kafka-settings Kafka configuration settings (JSON format)
--kafka-version Kafka major version
Managed Apache Kafka additional configuration
A large number of service specific configuration options are available:
- Kafka Connect
- Kafka REST
- Kafka Registry
- Kafka general
The general settings for Managed Apache Kafka are:
exo dbaas type show kafka --settings kafka
┼────────────────────────────────────────────────────────────┼─────────┼──────────────────────────────────────────────────────┼
│ KEY │ TYPE │ DESCRIPTION │
┼────────────────────────────────────────────────────────────┼─────────┼──────────────────────────────────────────────────────┼
│ log_segment_delete_delay_ms │ integer │ The amount of time to wait before deleting a file │
│ │ │ from the filesystem │
│ │ │ * Minimum: 0 / Maximum: 3.6e+06 │
│ │ │ * Example: 60000 │
│ log_roll_ms │ integer │ The maximum time before a new log segment is │
│ │ │ rolled out (in milliseconds). │
│ │ │ * Minimum: 1 / Maximum: 9.223372036854776e+18 │
│ log_cleaner_min_compaction_lag_ms │ integer │ The minimum time a message will remain uncompacted │
│ │ │ in the log. Only applicable for logs that are │
│ │ │ being compacted. │
│ │ │ * Minimum: 0 / Maximum: 9.223372036854776e+18 │
│ max_incremental_fetch_session_cache_slots │ integer │ The maximum number of incremental fetch sessions │
│ │ │ that the broker will maintain. │
│ │ │ * Minimum: 1000 / Maximum: 10000 │
│ │ │ * Example: 1000 │
│ group_min_session_timeout_ms │ integer │ The minimum allowed session timeout for registered │
│ │ │ consumers. Longer timeouts give consumers more │
│ │ │ time to process messages in between heartbeats at │
│ │ │ the cost of a longer time to detect failures. │
│ │ │ * Minimum: 0 / Maximum: 60000 │
│ │ │ * Example: 6000 │
│ offsets_retention_minutes │ integer │ Log retention window in minutes for offsets topic │
│ │ │ * Minimum: 1 / Maximum: 2.147483647e+09 │
│ │ │ * Example: 10080 │
│ log_flush_interval_ms │ integer │ The maximum time in ms that a message in any topic │
│ │ │ is kept in memory before flushed to disk. If not │
│ │ │ set, the value in log.flush.scheduler.interval.ms │
│ │ │ is used │
│ │ │ * Minimum: 0 / Maximum: 9.223372036854776e+18 │
│ log_retention_hours │ integer │ The number of hours to keep a log file before │
│ │ │ deleting it │
│ │ │ * Minimum: -1 / Maximum: 2.147483647e+09 │
│ log_retention_ms │ integer │ The number of milliseconds to keep a log file │
│ │ │ before deleting it (in milliseconds), If not set, │
│ │ │ the value in log.retention.minutes is used. If set │
│ │ │ to -1, no time limit is applied. │
│ │ │ * Minimum: -1 / Maximum: 9.223372036854776e+18 │
│ min_insync_replicas │ integer │ When a producer sets acks to 'all' (or '-1'), │
│ │ │ min.insync.replicas specifies the minimum number │
│ │ │ of replicas that must acknowledge a write for the │
│ │ │ write to be considered successful. │
│ │ │ * Minimum: 1 / Maximum: 7 │
│ │ │ * Example: 1 │
│ log_preallocate │ boolean │ Should pre allocate file when create new segment? │
│ │ │ * Example: false │
│ group_initial_rebalance_delay_ms │ integer │ The amount of time, in milliseconds, the group │
│ │ │ coordinator will wait for more consumers to join a │
│ │ │ new group before performing the first rebalance. A │
│ │ │ longer delay means potentially fewer rebalances, │
│ │ │ but increases the time until processing begins. │
│ │ │ The default value for this is 3 seconds. During │
│ │ │ development and testing it might be desirable to │
│ │ │ set this to 0 in order to not delay test execution │
│ │ │ time. │
│ │ │ * Minimum: 0 / Maximum: 300000 │
│ │ │ * Example: 3000 │
│ log_message_timestamp_difference_max_ms │ integer │ The maximum difference allowed between the │
│ │ │ timestamp when a broker receives a message and the │
│ │ │ timestamp specified in the message │
│ │ │ * Minimum: 0 / Maximum: 9.223372036854776e+18 │
│ log_index_size_max_bytes │ integer │ The maximum size in bytes of the offset index │
│ │ │ * Minimum: 1.048576e+06 / Maximum: 1.048576e+08 │
│ │ │ * Example: 1.048576e+07 │
│ message_max_bytes │ integer │ The maximum size of message that the server can │
│ │ │ receive. │
│ │ │ * Minimum: 0 / Maximum: 1.000012e+08 │
│ │ │ * Example: 1.048588e+06 │
│ log_roll_jitter_ms │ integer │ The maximum jitter to subtract from │
│ │ │ logRollTimeMillis (in milliseconds). If not set, │
│ │ │ the value in log.roll.jitter.hours is used │
│ │ │ * Minimum: 0 / Maximum: 9.223372036854776e+18 │
│ transaction_remove_expired_transaction_cleanup_interval_ms │ integer │ The interval at which to remove transactions that │
│ │ │ have expired due to transactional.id.expiration.ms │
│ │ │ passing (defaults to 3600000 (1 hour)). │
│ │ │ * Minimum: 600000 / Maximum: 3.6e+06 │
│ │ │ * Example: 3.6e+06 │
│ log_message_downconversion_enable │ boolean │ This configuration controls whether │
│ │ │ down-conversion of message formats is enabled to │
│ │ │ satisfy consume requests. │
│ │ │ * Example: true │
│ log_cleaner_max_compaction_lag_ms │ integer │ The maximum amount of time message will remain │
│ │ │ uncompacted. Only applicable for logs that are │
│ │ │ being compacted │
│ │ │ * Minimum: 30000 / Maximum: 9.223372036854776e+18 │
│ socket_request_max_bytes │ integer │ The maximum number of bytes in a socket request │
│ │ │ (defaults to 104857600). │
│ │ │ * Minimum: 1.048576e+07 / Maximum: 2.097152e+08 │
│ log_segment_bytes │ integer │ The maximum size of a single log file │
│ │ │ * Minimum: 1.048576e+07 / Maximum: 1.073741824e+09 │
│ replica_fetch_max_bytes │ integer │ The number of bytes of messages to attempt to │
│ │ │ fetch for each partition (defaults to 1048576). │
│ │ │ This is not an absolute maximum, if the first │
│ │ │ record batch in the first non-empty partition of │
│ │ │ the fetch is larger than this value, the record │
│ │ │ batch will still be returned to ensure that │
│ │ │ progress can be made. │
│ │ │ * Minimum: 1.048576e+06 / Maximum: 1.048576e+08 │
│ log_flush_interval_messages │ integer │ The number of messages accumulated on a log │
│ │ │ partition before messages are flushed to disk │
│ │ │ * Minimum: 1 / Maximum: 9.223372036854776e+18 │
│ │ │ * Example: 9.223372036854776e+18 │
│ max_connections_per_ip │ integer │ The maximum number of connections allowed from │
│ │ │ each ip address (defaults to 2147483647). │
│ │ │ * Minimum: 256 / Maximum: 2.147483647e+09 │
│ log_index_interval_bytes │ integer │ The interval with which Kafka adds an entry to the │
│ │ │ offset index │
│ │ │ * Minimum: 0 / Maximum: 1.048576e+08 │
│ │ │ * Example: 4096 │
│ transaction_state_log_segment_bytes │ integer │ The transaction topic segment bytes should be kept │
│ │ │ relatively small in order to facilitate faster log │
│ │ │ compaction and cache loads (defaults to 104857600 │
│ │ │ (100 mebibytes)). │
│ │ │ * Minimum: 1.048576e+06 / Maximum: 2.147483647e+09 │
│ │ │ * Example: 1.048576e+08 │
│ log_cleanup_policy │ string │ The default cleanup policy for segments beyond the │
│ │ │ retention window │
│ │ │ * Supported values: │
│ │ │ - delete │
│ │ │ - compact │
│ │ │ - compact,delete │
│ │ │ * Example: delete │
│ default_replication_factor │ integer │ Replication factor for autocreated topics │
│ │ │ * Minimum: 1 / Maximum: 10 │
│ producer_purgatory_purge_interval_requests │ integer │ The purge interval (in number of requests) of the │
│ │ │ producer request purgatory(defaults to 1000). │
│ │ │ * Minimum: 10 / Maximum: 10000 │
│ group_max_session_timeout_ms │ integer │ The maximum allowed session timeout for registered │
│ │ │ consumers. Longer timeouts give consumers more │
│ │ │ time to process messages in between heartbeats at │
│ │ │ the cost of a longer time to detect failures. │
│ │ │ * Minimum: 0 / Maximum: 1.8e+06 │
│ │ │ * Example: 1.8e+06 │
│ auto_create_topics_enable │ boolean │ Enable auto creation of topics │
│ │ │ * Example: true │
│ connections_max_idle_ms │ integer │ Idle connections timeout: the server socket │
│ │ │ processor threads close the connections that idle │
│ │ │ for longer than this. │
│ │ │ * Minimum: 1000 / Maximum: 3.6e+06 │
│ │ │ * Example: 540000 │
│ log_cleaner_min_cleanable_ratio │ number │ Controls log compactor frequency. Larger value │
│ │ │ means more frequent compactions but also more │
│ │ │ space wasted for logs. Consider setting │
│ │ │ log.cleaner.max.compaction.lag.ms to enforce │
│ │ │ compactions sooner, instead of setting a very high │
│ │ │ value for this option. │
│ │ │ * Minimum: 0.2 / Maximum: 0.9 │
│ │ │ * Example: 0.5 │
│ log_retention_bytes │ integer │ The maximum size of the log before deleting │
│ │ │ messages │
│ │ │ * Minimum: -1 / Maximum: 9.223372036854776e+18 │
│ compression_type │ string │ Specify the final compression type for a given │
│ │ │ topic. This configuration accepts the standard │
│ │ │ compression codecs ('gzip', 'snappy', 'lz4', │
│ │ │ 'zstd'). It additionally accepts 'uncompressed' │
│ │ │ which is equivalent to no compression; and │
│ │ │ 'producer' which means retain the original │
│ │ │ compression codec set by the producer. │
│ │ │ * Supported values: │
│ │ │ - gzip │
│ │ │ - snappy │
│ │ │ - lz4 │
│ │ │ - zstd │
│ │ │ - uncompressed │
│ │ │ - producer │
│ log_cleaner_delete_retention_ms │ integer │ How long are delete records retained? │
│ │ │ * Minimum: 0 / Maximum: 3.1556926e+11 │
│ │ │ * Example: 8.64e+07 │
│ num_partitions │ integer │ Number of partitions for autocreated topics │
│ │ │ * Minimum: 1 / Maximum: 1000 │
│ log_message_timestamp_type │ string │ Define whether the timestamp in the message is │
│ │ │ message create time or log append time. │
│ │ │ * Supported values: │
│ │ │ - CreateTime │
│ │ │ - LogAppendTime │
│ replica_fetch_response_max_bytes │ integer │ Maximum bytes expected for the entire fetch │
│ │ │ response (defaults to 10485760). Records are │
│ │ │ fetched in batches, and if the first record batch │
│ │ │ in the first non-empty partition of the fetch is │
│ │ │ larger than this value, the record batch will │
│ │ │ still be returned to ensure that progress can be │
│ │ │ made. As such, this is not an absolute maximum. │
│ │ │ * Minimum: 1.048576e+07 / Maximum: 1.048576e+09 │
┼────────────────────────────────────────────────────────────┼─────────┼──────────────────────────────────────────────────────┼
You can also update the settings of your database service:
exo dbaas update --zone de-fra-1 target-kafka-service-name --kafka-settings '{"compression_type":"lz4"}
NOTE - The parameter of
--kafka-settings
has to be in JSON format.