

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Configuración de Amazon MSK aprovisionado
<a name="msk-configuration"></a>

Amazon MSK proporciona configuraciones predeterminadas para los agentes, los temas y los nodos de metadatos. También puede crear configuraciones personalizadas y utilizarlas para crear nuevos clústeres de MSK o para actualizar clústeres existentes. Una configuración de MSK está compuesta por un conjunto de propiedades y sus valores correspondientes. Según el tipo de agente que utilice en el clúster, existe un conjunto distinto de configuraciones predeterminadas y un conjunto diferente de configuraciones que puede modificar. Consulte las secciones siguientes para obtener más detalles sobre cómo configurar agentes Standard y Express.

**Topics**
+ [Configuraciones de agentes Standard](msk-configuration-standard.md)
+ [Configuraciones de agentes Express](msk-configuration-express.md)
+ [Operaciones de configuración de agentes](msk-configuration-operations.md)

# Configuraciones de agentes Standard
<a name="msk-configuration-standard"></a>

Esta sección describe las propiedades de configuración de los agentes Standard.

**Topics**
+ [Configuraciones personalizadas de Amazon MSK](msk-configuration-properties.md)
+ [Configuración predeterminada de Amazon MSK](msk-default-configuration.md)
+ [Directrices para la configuración a nivel de tema del almacenamiento en niveles de Amazon MSK](msk-guidelines-tiered-storage-topic-level-config.md)

# Configuraciones personalizadas de Amazon MSK
<a name="msk-configuration-properties"></a>

Puede usar Amazon MSK para crear una configuración personalizada de MSK en la que establezca las siguientes propiedades de configuración de Apache Kafka. Las propiedades que no se establecen de forma explícita obtienen los valores que tienen en [Configuración predeterminada de Amazon MSK](msk-default-configuration.md). Para obtener más información acerca de las propiedades de configuración, consulte [Configuración de Apache Kafka](https://kafka.apache.org/documentation/#configuration).


| Name | Description (Descripción) | 
| --- | --- | 
| allow.everyone.if.no.acl.found | Si desea establecer esta propiedad enfalse, primero asegúrese de definir Apache Kafka ACLs para su clúster. Si establece esta propiedad en Apache Kafka false y no lo define primero ACLs, perderá el acceso al clúster. Si eso ocurre, puede volver a actualizar la configuración y establecer esta propiedad en true para recuperar el acceso al clúster. | 
| auto.create.topics.enable | Habilita la creación automática de temas en el servidor. | 
| compression.type | El tipo de compresión final para un tema determinado. Puede establecer esta propiedad en los códecs de compresión estándar (gzip, snappy, lz4 y zstd). Además, acepta uncompressed. Este valor equivale a la ausencia de compresión. Si establece el valor en producer, se retendrá el códec de compresión original que configuró el productor. | 
|  connections.max.idle.ms  | Tiempo de espera de las conexiones inactivas en milisegundos. Los subprocesos del procesador del socket del servidor cierran las conexiones que están inactivas durante un tiempo superior al valor establecido para esta propiedad. | 
| default.replication.factor | El factor de replicación predeterminado de los temas que se han creado automáticamente. | 
| delete.topic.enable | Habilita la operación para eliminar un tema. Si desactiva esta configuración, no podrá eliminar un tema usando la herramienta de administración. | 
| group.initial.rebalance.delay.ms | Cantidad de tiempo que el coordinador del grupo espera para que otros consumidores de datos se unan a un nuevo grupo antes de que el coordinador del grupo lleve a cabo el primer reequilibrio. Un retraso superior implica posiblemente menos reequilibrios, pero aumenta el tiempo hasta que el procesamiento comience. | 
| group.max.session.timeout.ms | Tiempo de espera máximo de la sesión para los consumidores registrados. Unos tiempos de espera superiores proporcionan a los consumidores más tiempo para procesar los mensajes entre latidos, pero se requiere más tiempo para detectar errores. | 
| group.min.session.timeout.ms | Tiempo de espera mínimo de la sesión para los consumidores registrados. Unos tiempos de espera inferiores se traducen en una detección de errores más rápida, pero se requieren latidos de consumidores más frecuentes. Esto puede agotar los recursos del agente. | 
| leader.imbalance.per.broker.percentage | La proporción de desequilibrio del líder permitida por agente. El controlador desencadena un equilibrio del líder si supera este valor por agente. Este valor se especifica en porcentaje. | 
| log.cleaner.delete.retention.ms | Cantidad de tiempo que desea que Apache Kafka conserve los registros eliminados. El valor mínimo es 0. | 
| log.cleaner.min.cleanable.ratio |  Esta propiedad de configuración puede tener valores entre 0 y 1. Este valor determina la frecuencia con la que el compactador de registros intenta limpiar el registro (si la compactación de registros está habilitada). De forma predeterminada, Apache Kafka evita limpiar un registro si se ha compactado más del 50 % de este. Esta proporción limita el espacio máximo que el registro desperdicia con duplicados (al 50 %, esto significa que como máximo el 50 % del registro podría estar duplicado). Una proporción mayor se traduce en limpiezas más eficaces y menos frecuentes, pero también implica un gasto de espacio superior en el registro.  | 
| log.cleanup.policy | La política de limpieza predeterminada de los segmentos que superan el periodo de retención. Una lista de políticas válidas separadas por comas. Las políticas válidas son delete y compact. En el caso de los clústeres habilitados para el almacenamiento por niveles, la única política válida es delete. | 
| log.flush.interval.messages | Número de mensajes acumulados en una partición de registro antes de que se vacíen en el disco. | 
| log.flush.interval.ms | Tiempo máximo en milisegundos que un mensaje de cualquier tema se conserva en la memoria antes de vaciarlo en el disco. Si no establece este valor, se utiliza el valor de log.flush.scheduler.interval.ms. El valor mínimo es 0. | 
| log.message.timestamp.difference.max.ms | Esta configuración quedó obsoleta en Kafka 3.6.0. Se agregaron dos configuraciones, log.message.timestamp.before.max.ms y log.message.timestamp.after.max.ms. La diferencia temporal máxima entre la marca temporal que se produce cuando un agente recibe un mensaje y la marca temporal que se especifica en el mensaje. Si es log.message.timestamp.type=CreateTime, se rechazará un mensaje si la diferencia en la marca de tiempo supera este umbral. Esta configuración se ignora si es LogAppendTime log.message.timestamp.type=. | 
| log.message.timestamp.type | Especifica si la marca temporal del mensaje es la hora de creación del mensaje o la hora de adición del registro. Los valores permitidos son CreateTime y LogAppendTime. | 
| log.retention.bytes | Tamaño máximo del registro antes de eliminarlo. | 
| log.retention.hours | Número de horas que se conserva un archivo de registro antes de eliminarlo, cantidad terciaria de la propiedad log.retention.ms. | 
| log.retention.minutes | Número de minutos que se conserva un archivo de registro antes de eliminarlo, cantidad secundaria de la propiedad log.retention.ms. Si no establece este valor, se utiliza el valor de log.retention.hours. | 
| log.retention.ms | Número de milisegundos que se conserva un archivo de registro antes de eliminarlo (en milisegundos). Si no se establece, se utiliza el valor de log.retention.minutes. | 
| log.roll.ms | Tiempo máximo antes de que un segmento de registro nuevo se implemente (en milisegundos). Si no establece esta propiedad, se utiliza el valor de log.roll.hours. El valor mínimo posible de esta propiedad es 1. | 
| log.segment.bytes | Tamaño máximo de un único archivo de registro. | 
| max.incremental.fetch.session.cache.slots | Número máximo de sesiones de recuperación incrementales que se conservan. | 
| message.max.bytes |  Tamaño de lote de registros más grande que admite Kafka. Si aumenta este valor y hay consumidores anteriores a 0.10.2, también debe aumentar el tamaño de recuperación de los consumidores para que se puedan recuperar lotes de registros de este tamaño. La versión de formato de mensaje más reciente siempre agrupa los mensajes en lotes para aumentar la eficacia. Las versiones de formato de mensaje anteriores no agrupan los registros sin comprimir en lotes y, en este caso, este límite se aplica únicamente a un solo registro. Puede establecer este valor por tema con la configuración de temas max.message.bytes.  | 
| min.insync.replicas |  Cuando un productor establece las confirmaciones en `"all"` (o `"-1"`), el valor de min.insync.replicas especifica el número mínimo de réplicas que debe confirmar una escritura para que se considere como correcta. Si no se puede alcanzar este mínimo, el productor hace una excepción (o bien). NotEnoughReplicas NotEnoughReplicasAfterAppend Puede utilizar valores de min.insync.replicas y confirmaciones para reforzar las garantías de durabilidad. Por ejemplo, puede crear un tema con un factor de replicación de 3, establecer min.insync.replicas en 2 y producirlo con las confirmaciones de `"all"`. Esto garantiza que el productor emita una excepción si la mayoría de las réplicas no reciben una escritura.  | 
| num.io.threads | El número de subprocesos que utiliza el servidor para procesar las solicitudes, puede incluir la E/S del disco. | 
| num.network.threads | El número de subprocesos que utiliza el servidor para recibir solicitudes desde la red y enviarle las respuestas a dichas solicitudes. | 
| num.partitions | Número predeterminado de particiones de registro por tema. | 
| num.recovery.threads.per.data.dir | El número de subprocesos por directorio de datos que se va a utilizar para la recuperación de registros en el arranque y para el vaciado en el apagado. | 
| num.replica.fetchers | El número de subprocesos del recuperador que se utilizan para replicar los mensajes desde un agente de origen. Si aumentas este valor, puedes aumentar el grado de I/O paralelismo en el bróker seguidor. | 
| offsets.retention.minutes | Después de que un grupo de consumidores pierda todos sus consumidores (es decir, se quede vacío), sus compensaciones se conservan durante este periodo de retención antes de que se descarten. Para los consumidores independientes (es decir, los que utilizan asignación manual), las compensaciones vencen después de la hora de la última confirmación más este periodo de retención. | 
| offsets.topic.replication.factor | El factor de replicación del tema de compensación. Establezca este valor en un valor más alto para garantizar la disponibilidad. Se produce un error en la creación del tema interno hasta que el tamaño del clúster cumpla este requisito de factor de replicación. | 
| replica.fetch.max.bytes | Número de bytes de los mensajes para intentar recuperar cada partición. Esto no es un valor máximo absoluto. Si el primer lote de registros de la primera partición que no está vacía de la recuperación es superior a este valor, el lote de registros se devuelve para asegurar el progreso. Las propiedades message.max.bytes (configuración del agente) o max.message.bytes (configuración del tema) definen el tamaño de lote de registro máximo que acepta el agente. | 
| replica.fetch.response.max.bytes | El número máximo de bytes previsto para la respuesta de recuperación completa. Los registros se recuperan en lotes y, si el primer lote de registro de la primera partición que no está vacía de la recuperación es superior a este valor, el lote de registro se devolverá para asegurar que se lleva a cabo el progreso. Esto no es un valor máximo absoluto. Las propiedades message.max.bytes (configuración del agente) o max.message.bytes (configuración del tema) especifican el tamaño de lote de registro máximo que acepta el agente. | 
| replica.lag.time.max.ms | Si un seguidor no ha enviado ninguna solicitud de recuperación o no ha consumido hasta la compensación final del registro del líder durante al menos este número de milisegundos, el líder elimina el seguidor del ISR.MinValue: 10000MaxValue = 30000 | 
| replica.selector.class | El nombre de clase totalmente cualificado que se implementa. ReplicaSelector El agente utiliza este valor para encontrar la réplica de lectura preferida. Si utiliza la versión 2.4.1 o superior de Apache Kafka y desea permitir que los consumidores puedan recuperar desde la réplica más cercana, establezca esta propiedad en org.apache.kafka.common.replica.RackAwareReplicaSelector. Para obtener más información, consulte [Versión 2.4.1 de Apache Kafka (utilice 2.4.1.1 en su lugar)](supported-kafka-versions.md#2.4.1). | 
| replica.socket.receive.buffer.bytes | El búfer de recepción de sockets para las solicitudes de red. | 
| socket.receive.buffer.bytes | Búfer SO\$1RCVBUF de los sockets del servidor de sockets. El valor mínimo que puede establecer para esta propiedad es -1. Si el valor es -1, Amazon MSK usa el sistema operativo predeterminado. | 
| socket.request.max.bytes | El número máximo de bytes de una solicitud de conector. | 
| socket.send.buffer.bytes | Búfer SO\$1SNDBUF de los sockets del servidor de sockets. El valor mínimo que puede establecer para esta propiedad es -1. Si el valor es -1, Amazon MSK usa el sistema operativo predeterminado. | 
| transaction.max.timeout.ms | Tiempo de espera máximo para las transacciones. Si el tiempo de transacción solicitado por un cliente supera este valor, el bróker devuelve un error. InitProducerIdRequest Esto evita que un cliente experimente un tiempo de espera demasiado grande, lo que puede detener la lectura de los temas que se incluyen en la transacción por parte de los consumidores. | 
| transaction.state.log.min.isr | Se ha anulado la configuración min.insync.replicas para el tema de la transacción. | 
| transaction.state.log.replication.factor | El factor de replicación del tema de transacción. Establezca esta propiedad en un valor más elevado para aumentar la disponibilidad. Se produce un error en la creación del tema interno hasta que el tamaño del clúster cumpla este requisito de factor de replicación. | 
| transactional.id.expiration.ms | El tiempo en milisegundos que el coordinador de transacciones espera para recibir cualquier actualización del estado de la transacción actual antes de que venza el ID de la transacción del coordinador. Esta configuración también influye en la caducidad del ID de productor, ya que hace que el productor IDs caduque cuando este tiempo transcurre después de la última escritura con el ID de productor indicado. IDs Es posible que el productor caduque antes si se elimina la última escritura del ID de productor debido a la configuración de retención del tema. El valor mínimo de esta propiedad es de 1 milisegundo. | 
| unclean.leader.election.enable | Indica si las réplicas que no están incluidas en el conjunto de ISR deben servir de líder como último recurso, aunque esto pueda provocar la pérdida de datos. | 
| zookeeper.connection.timeout.ms | ZooKeeper clústeres de modos. Tiempo máximo que el cliente espera para establecer una conexión. ZooKeeper Si no establece este valor, se utiliza el valor de zookeeper.session.timeout.ms. MinValue = 6000 MaxValue (incluido) = 18000 Recomendamos establecer este valor en 10 000 en instancias t3.small para evitar tiempo de inactividad del clúster.  | 
| zookeeper.session.timeout.ms |  ZooKeeper clústeres de modos. El tiempo de espera ZooKeeper de la sesión de Apache en milisegundos. MinValue = 6000 MaxValue (incluido) = 18000  | 

Para obtener información acerca de cómo puede crear una configuración de MSK personalizada, enumerar todas las configuraciones o describirlas, consulte [Operaciones de configuración de agentes](msk-configuration-operations.md). Para crear un clúster de MSK con una configuración personalizada de MSK o para actualizar un clúster con una nueva configuración personalizada, consulte [Características y conceptos clave de Amazon MSK](operations.md).

Cuando actualiza su clúster de MSK existente con una configuración personalizada de MSK, Amazon MSK se restablece cuando es necesario y utiliza las prácticas recomendadas para reducir el tiempo de inactividad del cliente. Por ejemplo, después de que Amazon MSK restablezca cada agente, el servicio intenta dejar que el agente se ponga al día con los datos que ha podido perder durante la actualización de la configuración antes de pasar al siguiente agente.

## Configuración dinámica de Amazon MSK
<a name="msk-dynamic-confinguration"></a>

Además de las propiedades de configuración que ofrece Amazon MSK, también puede establecer propiedades de configuración del agente y del clúster de forma dinámica que no requieran un restablecimiento del agente. Puede establecer de forma dinámica algunas propiedades de configuración. Estas son las propiedades que no están marcadas como de solo lectura en la tabla en [Broker Configs](https://kafka.apache.org/documentation/#brokerconfigs) en la documentación de Apache Kafka. Para obtener más información acerca de configuraciones dinámicas y ejemplos de comandos, consulte [Updating Broker Configs](https://kafka.apache.org/documentation/#dynamicbrokerconfigs) en la documentación de Apache Kafka.

**nota**  
Puede establecer la propiedad `advertised.listeners`, pero no la propiedad `listeners`.

## Configuración a nivel de tema de Amazon MSK
<a name="msk-topic-confinguration"></a>

Puede utilizar los comandos de Apache Kafka para establecer o modificar propiedades de configuración de nivel de tema para temas nuevos y existentes. Para obtener más información acerca de las propiedades de configuración de temas y ejemplos de cómo establecerlas, consulte [Topic-Level Configs](https://kafka.apache.org/documentation/#topicconfigs) en la documentación de Apache Kafka.

# Configuración predeterminada de Amazon MSK
<a name="msk-default-configuration"></a>

Al crear un clúster de MSK sin especificar una configuración de MSK personalizada, Amazon MSK crea y utiliza una configuración predeterminada con los valores que se muestran en la tabla siguiente. Con respecto a las propiedades que no están en esta tabla, Amazon MSK utiliza los valores predeterminados asociados a su versión de Apache Kafka. Para obtener una lista de estos valores predeterminados, consulte [Configuración de Apache Kafka](https://kafka.apache.org/documentation/#configuration). 


| Name | Description (Descripción) | Valor predeterminado para el clúster de almacenamiento sin niveles | Valor predeterminado para el clúster habilitado para el almacenamiento por niveles | 
| --- | --- | --- | --- | 
| allow.everyone.if.no.acl.found | Si ningún patrón de recursos coincide con un recurso específico, el recurso no tiene ninguna asociación. ACLs En este caso, si establece esta propiedad como true, todos los usuarios pueden acceder al recurso, no solo los superusuarios. | true | true | 
| auto.create.topics.enable | Habilita la creación automática de un tema en el servidor. | false | false | 
| auto.leader.rebalance.enable | Habilita el equilibrio automático del líder. Un subproceso de fondo comprueba e inicia el equilibrio del líder a intervalos regulares, si es necesario. | true | true | 
| default.replication.factor | Factores de replicación predeterminados de los temas que se han creado automáticamente. | 3 para clústeres en 3 zonas de disponibilidad y 2 para clústeres en 2 zonas de disponibilidad. | 3 para clústeres en 3 zonas de disponibilidad y 2 para clústeres en 2 zonas de disponibilidad. | 
|  local.retention.bytes  |  El tamaño máximo de los segmentos de registro locales de una partición antes de que elimine los segmentos antiguos. Si no establece este valor, se utiliza el valor de log.retention.bytes. El valor efectivo debe ser siempre menor o igual que el valor de log.retention.bytes. Un valor predeterminado de -2 indica que no hay límite de retención local. Esto corresponde a la configuración retention.ms/bytes de -1. Las propiedades local.retention.ms y local.retention.bytes son similares a las de log.retention, ya que se utilizan para determinar cuánto tiempo deben permanecer los segmentos de registro en el almacenamiento local. Las configuraciones de log.retention.\$1 existentes son configuraciones de retención para la partición de temas. Esto incluye el almacenamiento local y remoto. Valores válidos: números enteros en [-2; \$1Inf]  | -2 para un número ilimitado | -2 para un número ilimitado | 
|  local.retention.ms  | El número de milisegundos para retener el segmento de registro locale antes de la eliminación. Si no establece este valor, Amazon MSK utilizará el valor de log.retention.ms. El valor efectivo debe ser siempre menor o igual que el valor de log.retention.bytes. Un valor predeterminado de -2 indica que no hay límite de retención local. Esto corresponde a la configuración retention.ms/bytes de -1.Los valores de local.retention.ms y local.retention.bytes son similares a los de log.retention. MSK usa esta configuración para determinar cuánto tiempo deben permanecer los segmentos de registro en el almacenamiento local. Las configuraciones de log.retention.\$1 existentes son configuraciones de retención para la partición de temas. Esto incluye el almacenamiento local y remoto. Los valores válidos son números enteros mayores que 0. | -2 para un número ilimitado | -2 para un número ilimitado | 
|  log.message.timestamp.difference.max.ms  | Esta configuración quedó obsoleta en Kafka 3.6.0. Se agregaron dos configuraciones, log.message.timestamp.before.max.ms y log.message.timestamp.after.max.ms. Diferencia máxima permitida entre la marca temporal que se produce cuando un agente recibe un mensaje y la marca temporal que se especifica en el mensaje. Si es log.message.timestamp.type=CreateTime, se rechazará un mensaje si la diferencia en la marca temporal supera este umbral. Esta configuración se ignora si es log.message.timestamp.type=. LogAppendTime La diferencia de marca temporal máxima permitida no debe ser superior a la de log.retention.ms para evitar la acumulación innecesariamente frecuente de registros. | 9223372036854775807 | 86400000 para Kafka 2.8.2 con funcionalidad por niveles y Kafka 3.7.x con funcionalidad por niveles. | 
| log.segment.bytes | El tamaño máximo de un único archivo de registro. | 1073741824 | 134217728 | 
| min.insync.replicas |  Cuando un productor establece el valor de las confirmaciones (la confirmación que el productor recibe del agente de Kafka) en `"all"` (o `"-1"`), el valor de min.insync.replicas especifica el número mínimo de réplicas que debe confirmar una escritura para que se considere como correcta. Si este valor no cumple con este mínimo, el productor hace una excepción (una de las dos NotEnoughReplicas opciones). NotEnoughReplicasAfterAppend Cuando utiliza de forma conjunta los valores de min.insync.replicas y las confirmaciones, puede aplicar unas garantías de durabilidad mayores. Por ejemplo, puede crear un tema con un factor de replicación de 3, establecer min.insync.replicas en 2 y producirlo con las confirmaciones de `"all"`. Esto garantiza que el productor emita una excepción si la mayoría de las réplicas no reciben una escritura.  | 2 para clústeres en 3 zonas de disponibilidad y 1 para clústeres en 2 zonas de disponibilidad. | 2 para clústeres en 3 zonas de disponibilidad y 1 para clústeres en 2 zonas de disponibilidad. | 
| num.io.threads | Número de subprocesos que utiliza el servidor para producir las solicitudes, puede incluir la E/S del disco. | 8 | max (8, vCPUs), donde v CPUs depende del tamaño de la instancia del bróker | 
| num.network.threads | El número de subprocesos que utiliza el servidor para recibir solicitudes desde la red y enviarle las respuestas. | 5 | max (5, vCPUs /2) donde v CPUs depende del tamaño de la instancia del bróker | 
| num.partitions | Número predeterminado de particiones de registro por tema. | 1 | 1 | 
| num.replica.fetchers | Número de subprocesos de búsqueda utilizados para replicar los mensajes de un agente fuente. Si aumentas este valor, puedes aumentar el grado de I/O paralelismo en el agente seguidor. | 2 | max (2, vCPUs /4) donde v CPUs depende del tamaño de la instancia del broker | 
|  remote.log.msk.disable.policy  |  Se usa con remote.storage.enable para deshabilitar el almacenamiento por niveles. Establezca esta política en Eliminar para indicar que los datos del almacenamiento por niveles se eliminarán al establecer remote.storage.enable en false.  | N/A | Ninguno | 
| remote.log.reader.threads | Tamaño del grupo de subprocesos del lector de registros remoto, que se utiliza para programar tareas a fin de recuperar datos del almacenamiento remoto. | N/A | max (10, v CPUs \$1 0.67) donde v CPUs depende del tamaño de la instancia del broker | 
|  remote.storage.enable  | Habilita el almacenamiento por niveles (remoto) para un tema si se establece en true. Deshabilita el almacenamiento por niveles del tema si se establece en false y remote.log.msk.disable.policy se establece en Eliminar. Al deshabilitar el almacenamiento por niveles, se eliminan los datos del almacenamiento remoto. Cuando deshabilita el almacenamiento por niveles para un tema, no podrá volver a habilitarlo. | false | false | 
| replica.lag.time.max.ms | Si un seguidor no ha enviado ninguna solicitud de recuperación o no ha consumido hasta la compensación final del registro del líder durante al menos este número de milisegundos, el líder elimina el seguidor del ISR. | 30000 | 30000 | 
|  retention.ms  |  Campo obligatorio. El tiempo mínimo es de 3 días. No hay ningún valor predeterminado porque la configuración es obligatoria. Amazon MSK usa el valor de retention.ms con local.retention.ms para determinar cuándo se transfieren los datos del almacenamiento local al almacenamiento por niveles. El valor de local.retention.ms especifica cuándo se transferir los datos del almacenamiento local al almacenamiento por niveles. El valor de retention.ms especifica cuándo se deben eliminar los datos del almacenamiento en niveles (es decir, eliminarlos del clúster). Valores válidos: números enteros en [-1; \$1Inf]  | Mínimo de 259 200 000 milisegundos (3 días). -1 para una retención infinita. | Mínimo de 259 200 000 milisegundos (3 días). -1 para una retención infinita. | 
| socket.receive.buffer.bytes | El búfer SO\$1RCVBUF de los sockets del servidor de sockets. Si el valor es -1, se utiliza el sistema operativo predeterminado. | 102400 | 102400 | 
| socket.request.max.bytes | Número máximo de bytes de una solicitud de conector. | 104857600 | 104857600 | 
| socket.send.buffer.bytes | El búfer SO\$1SNDBUF de los sockets del servidor de sockets. Si el valor es -1, se utiliza el sistema operativo predeterminado. | 102400 | 102400 | 
| unclean.leader.election.enable | Indica si quiere que las réplicas que no están incluidas en el conjunto de ISR sirvan de líder como último recurso, aunque esto pueda provocar la pérdida de datos. | true | false | 
| zookeeper.session.timeout.ms |  El tiempo de espera ZooKeeper de la sesión de Apache en milisegundos.  | 18000 | 18000 | 
| zookeeper.set.acl | El cliente configurado para usar secure ACLs. | false | false | 

Para obtener información sobre cómo especificar valores de configuración personalizados, consulte [Configuraciones personalizadas de Amazon MSK](msk-configuration-properties.md).

# Directrices para la configuración a nivel de tema del almacenamiento en niveles de Amazon MSK
<a name="msk-guidelines-tiered-storage-topic-level-config"></a>

Las siguientes son las configuraciones y limitaciones predeterminadas al configurar el almacenamiento por niveles de los temas.
+ Amazon MSK no admite tamaños de segmento de registro más pequeños para los temas con el almacenamiento por niveles activado. Si desea crear un segmento, hay un tamaño mínimo de segmento de registro de 48 MiB o un tiempo mínimo de rotación del segmento de 10 minutos. Estos valores se asignan a las propiedades segment.bytes y segment.ms.
+ El valor de local.retention. ms/bytes can't equal or exceed the retention.ms/bytes. Esta es la configuración de retención del almacenamiento por niveles.
+ El valor predeterminado para local.retention. ms/bytes is -2. This means that the retention.ms value is used for local.retention.ms/bytes. En este caso, los datos permanecen tanto en el almacenamiento local como en el almacenamiento por niveles (una copia en cada uno) y vencen juntos. Para esta opción, se conserva una copia de los datos locales en el almacenamiento remoto. En este caso, los datos leídos del tráfico de consumo provienen del almacenamiento local.
+ El valor predeterminado de retention.ms es 7 días. No hay un límite de tamaño predeterminado para retention.bytes.
+ El valor mínimo de retention.ms/bytes es -1. Esto significa una retención infinita.
+ El valor mínimo de local.retention. ms/bytes is -2. This means infinite retention for local storage. It matches with the retention.ms/bytesestablecer como -1.
+ La configuración a nivel de tema retention.ms es obligatoria para los temas con el almacenamiento en niveles activado. El valor mínimo de retention.ms es de 3 días.

Para obtener más información sobre las restricciones del almacenamiento por niveles, consulte [Restricciones y limitaciones de almacenamiento por niveles para clústeres de Amazon MSK](msk-tiered-storage.md#msk-tiered-storage-constraints).

# Configuraciones de agentes Express
<a name="msk-configuration-express"></a>

Apache Kafka tiene cientos de configuraciones de agente que puede usar para ajustar el rendimiento del clúster de Amazon MSK aprovisionado. Establecer valores erróneos o subóptimos puede afectar la fiabilidad y el rendimiento del clúster. Los agentes Express mejoran la disponibilidad y la durabilidad de los clústeres de Amazon MSK aprovisionados al establecer valores óptimos para configuraciones críticas y protegerlos frente a errores de configuración comunes. Existen tres categorías de configuraciones según el acceso de lectura y escritura: [lectura/escritura (editable)](msk-configuration-express-read-write.md), [solo lectura](msk-configuration-express-read-only.md) y configuraciones sin acceso de lectura ni escritura. Algunas configuraciones aún usan el valor predeterminado de Apache Kafka correspondiente a la versión de Apache Kafka en la que se ejecuta el clúster. Marcamos estas configuraciones como Valores predeterminados de Apache Kafka.

**Topics**
+ [Configuraciones personalizadas de agentes Express de MSK (acceso de lectura/escritura)](msk-configuration-express-read-write.md)
+ [Configuraciones de solo lectura para agentes Express](msk-configuration-express-read-only.md)

# Configuraciones personalizadas de agentes Express de MSK (acceso de lectura/escritura)
<a name="msk-configuration-express-read-write"></a>

Puede actualizar las configuraciones de los read/write corredores mediante la [función de configuración de actualizaciones](msk-update-cluster-config.md) de Amazon MSK o mediante la API de AlterConfig Apache Kafka. Las configuraciones de los agentes de Apache Kafka pueden ser estáticas o dinámicas. Las configuraciones estáticas requieren un reinicio del agente para que los cambios surtan efecto, mientras que las configuraciones dinámicas no requieren el reinicio del agente. Para obtener más información sobre las propiedades de configuración y los modos de actualización, consulte [Updating broker configs](https://kafka.apache.org/documentation/#dynamicbrokerconfigs).

**Topics**
+ [Configuraciones estáticas en agentes Express de MSK](#msk-configuration-express-static-configuration)
+ [Configuraciones dinámicas en agentes Express](#msk-configuration-express-dynamic-configuration)
+ [Configuraciones de temas en agentes Express](#msk-configuration-express-topic-configuration)

## Configuraciones estáticas en agentes Express de MSK
<a name="msk-configuration-express-static-configuration"></a>

Puede utilizar Amazon MSK para crear un archivo de configuración personalizado de MSK en el que defina las siguientes propiedades estáticas. Amazon MSK establece y administra automáticamente todas las demás propiedades que no configure. Puede crear y actualizar archivos de configuración estática desde la consola de MSK o mediante el [comando de configuraciones](msk-configuration-operations-create.md).


| Propiedad | Description (Descripción) | Valor predeterminado | 
| --- | --- | --- | 
|  allow.everyone.if.no.acl.found  |  Si desea establecer esta propiedad en false, primero asegúrese de definir Apache Kafka ACLs para su clúster. Si establece esta propiedad en false y no define primero Apache Kafka ACLs, perderá el acceso al clúster. Si eso ocurre, puede actualizar nuevamente la configuración y establecer esta propiedad en verdadero para recuperar el acceso al clúster.  |  true  | 
|  auto.create.topics.enable  |  Habilita la creación automática de un tema en el servidor.  |  false  | 
| compression.type |  Especifique el tipo de compresión final para un tema determinado. Esta configuración admite los códecs de compresión estándar: gzip, snappy, lz4 y zstd. Esta configuración también acepta `uncompressed`, que es equivalente a no usar compresión, y `producer`, que significa conservar el códec de compresión original establecido por el productor. | Valor predeterminado de Apache Kafka | 
|  connections.max.idle.ms  |  Tiempo de espera de las conexiones inactivas en milisegundos. Los subprocesos del procesador del socket del servidor cierran las conexiones que están inactivas durante un tiempo superior al valor establecido para esta propiedad.  |  Valor predeterminado de Apache Kafka  | 
|  delete.topic.enable  |  Habilita la operación para eliminar un tema. Si desactiva esta configuración, no podrá eliminar un tema usando la herramienta de administración.  |  Valor predeterminado de Apache Kafka  | 
|  group.initial.rebalance.delay.ms  |   Cantidad de tiempo que el coordinador del grupo espera para que otros consumidores de datos se unan a un nuevo grupo antes de que el coordinador del grupo lleve a cabo el primer reequilibrio. Un retraso superior implica posiblemente menos reequilibrios, pero aumenta el tiempo hasta que el procesamiento comience.  |  Valor predeterminado de Apache Kafka  | 
|  group.max.session.timeout.ms  |  Tiempo de espera máximo de la sesión para los consumidores registrados. Unos tiempos de espera superiores proporcionan a los consumidores más tiempo para procesar los mensajes entre latidos, pero se requiere más tiempo para detectar errores.  |  Valor predeterminado de Apache Kafka  | 
|  leader.imbalance.per.broker.percentage  |  La proporción de desequilibrio del líder permitida por agente. El controlador desencadena un equilibrio del líder si supera este valor por agente. Este valor se especifica en porcentaje.  |  Valor predeterminado de Apache Kafka  | 
| log.cleanup.policy | La política de limpieza predeterminada de los segmentos que superan el periodo de retención. Una lista de políticas válidas separadas por comas. Las políticas válidas son delete y compact. Para clústeres con almacenamiento por niveles habilitado, la política válida es únicamente delete. | Valor predeterminado de Apache Kafka | 
| log.message.timestamp.after.max.ms |  La diferencia de marca de tiempo permitida entre la marca de tiempo del mensaje y la marca de tiempo del agente. La marca de tiempo del mensaje puede ser posterior o igual a la marca de tiempo del agente, con la diferencia máxima permitida determinada por el valor establecido en esta configuración. Si `log.message.timestamp.type=CreateTime`, el mensaje se rechazará si la diferencia entre las marcas de tiempo supera este umbral especificado. Esta configuración se ignora si `log.message.timestamp.type=LogAppendTime`.  | 86400000 (24 \$1 60 \$1 60 \$1 1000 ms, es decir, 1 día) | 
| log.message.timestamp.before.max.ms |  La diferencia de marca de tiempo permitida entre la marca de tiempo del agente y la marca de tiempo del mensaje. La marca de tiempo del mensaje puede ser anterior o igual a la marca de tiempo del agente, con la diferencia máxima permitida determinada por el valor establecido en esta configuración. Si `log.message.timestamp.type=CreateTime`, el mensaje se rechazará si la diferencia entre las marcas de tiempo supera este umbral especificado. Esta configuración se ignora si `log.message.timestamp.type=LogAppendTime`.  | 86400000 (24 \$1 60 \$1 60 \$1 1000 ms, es decir, 1 día) | 
| log.message.timestamp.type | Especifica si la marca temporal del mensaje es la hora de creación del mensaje o la hora de adición del registro. Los valores permitidos son CreateTime y LogAppendTime. | Valor predeterminado de Apache Kafka | 
| log.retention.bytes | Tamaño máximo del registro antes de eliminarlo. | Valor predeterminado de Apache Kafka | 
| log.retention.ms | Cantidad de milisegundos durante los cuales se conserva un archivo de registro antes de eliminarlo. | Valor predeterminado de Apache Kafka | 
| max.connections.per.ip | El número máximo de conexiones permitidas desde cada dirección IP. Este valor se puede establecer en 0 si existen sobrescrituras configuradas mediante la propiedad max.connections.per.ip.overrides. Las nuevas conexiones procedentes de la dirección IP se descartan cuando se alcanza el límite. | Valor predeterminado de Apache Kafka | 
|  max.incremental.fetch.session.cache.slots  |  Número máximo de sesiones de recuperación incrementales que se conservan.  |  Valor predeterminado de Apache Kafka  | 
| message.max.bytes |  Tamaño de lote de registros más grande que admite Kafka. Si aumenta este valor y hay consumidores anteriores a 0.10.2, también debe aumentar el tamaño de recuperación de los consumidores para que se puedan recuperar lotes de registros de este tamaño. La versión de formato de mensaje más reciente siempre agrupa los mensajes en lotes para aumentar la eficacia. Las versiones de formato de mensaje anteriores no agrupan los registros sin comprimir en lotes y, en este caso, este límite se aplica únicamente a un solo registro. Puede establecer este valor por tema mediante la configuración `max.message.bytes` del tema.  | Valor predeterminado de Apache Kafka | 
|  num.partitions  |  Número predeterminado de particiones por tema.  |  1  | 
|  offsets.retention.minutes  |  Después de que un grupo de consumidores pierda todos sus consumidores (es decir, se quede vacío), sus compensaciones se conservan durante este periodo de retención antes de que se descarten. Para los consumidores independientes (es decir, aquellos que usan asignación manual), los desplazamientos expiran después del tiempo transcurrido desde la última confirmación más este período de retención.  |  Valor predeterminado de Apache Kafka  | 
|  replica.fetch.max.bytes  |  Número de bytes de los mensajes para intentar recuperar cada partición. Esto no es un valor máximo absoluto. Si el primer lote de registros de la primera partición que no está vacía de la recuperación es superior a este valor, el lote de registros se devuelve para asegurar el progreso. Las propiedades message.max.bytes (configuración del agente) o max.message.bytes (configuración del tema) definen el tamaño de lote de registro máximo que acepta el agente.  |  Valor predeterminado de Apache Kafka  | 
|  replica.selector.class  |  El nombre de clase completo que se implementa. ReplicaSelector El agente utiliza este valor para encontrar la réplica de lectura preferida. Si desea permitir que los consumidores obtengan datos de la réplica más cercana, establezca esta propiedad en `org.apache.kafka.common.replica.RackAwareReplicaSelector`.  |  Valor predeterminado de Apache Kafka  | 
|  socket.receive.buffer.bytes  |  El búfer SO\$1RCVBUF de los sockets del servidor de sockets. Si el valor es -1, se utiliza el sistema operativo predeterminado.  |  102400  | 
|  socket.request.max.bytes  |  Número máximo de bytes de una solicitud de conector.  |  104857600  | 
|  socket.send.buffer.bytes  |  El búfer SO\$1SNDBUF de los sockets del servidor de sockets. Si el valor es -1, se utiliza el sistema operativo predeterminado.  |  102400  | 
|  transaction.max.timeout.ms  |  Tiempo de espera máximo para las transacciones. Si el tiempo de transacción solicitado por un cliente supera este valor, el bróker devuelve un error. InitProducerIdRequest Esto evita que un cliente experimente un tiempo de espera demasiado grande, lo que puede detener la lectura de los temas que se incluyen en la transacción por parte de los consumidores.  |  Valor predeterminado de Apache Kafka  | 
|  transactional.id.expiration.ms  |  El tiempo en milisegundos que el coordinador de transacciones espera para recibir cualquier actualización del estado de la transacción actual antes de que venza el ID de la transacción del coordinador. Esta configuración también influye en la caducidad del ID de productor, ya que hace IDs que el productor caduque cuando este tiempo transcurre después de la última escritura con el ID de productor indicado. El productor IDs puede caducar antes si se elimina la última escritura del ID de productor debido a la configuración de retención del tema. El valor mínimo de esta propiedad es de 1 milisegundo.  |  Valor predeterminado de Apache Kafka  | 

## Configuraciones dinámicas en agentes Express
<a name="msk-configuration-express-dynamic-configuration"></a>

Puede usar la AlterConfig API de Apache Kafka o la herramienta Kafka-configs.sh para editar las siguientes configuraciones dinámicas. Amazon MSK establece y administra automáticamente todas las demás propiedades que no configure. Puede establecer dinámicamente propiedades de configuración del clúster y del agente que no requieren el reinicio del agente.


| Propiedad | Description (Descripción) | Predeterminado | 
| --- | --- | --- | 
|  advertised.listeners  |  Oyentes que se publican para que los clientes los utilicen, si son distintos de la propiedad de configuración `listeners`. En entornos de IaaS, este valor puede necesitar ser distinto de la interfaz a la que se vincula el agente. Si no se establece, se utilizará el valor de oyentes. A diferencia de oyentes, no es válido anunciar la meta-dirección 0.0.0.0. Además, a diferencia de `listeners`, en esta propiedad pueden existir puertos duplicados, de modo que un oyente se pueda configurar para anunciar la dirección de otro oyente. Esto puede resultar útil en algunos casos en los que se utilizan equilibradores de carga externos. Esta propiedad se establece por agente.  |  null  | 
|  compression.type  |  El tipo de compresión final para un tema determinado. Puede establecer esta propiedad en los códecs de compresión estándar (`gzip`, `snappy`, `lz4` y `zstd`). Además, acepta `uncompressed`. Este valor equivale a la ausencia de compresión. Si establece el valor en `producer`, se retendrá el códec de compresión original que configuró el productor.  | Valor predeterminado de Apache Kafka | 
| log.cleaner.delete.retention.ms | La cantidad de tiempo durante la cual se conservan los marcadores de eliminación para los temas con registros compactados. Esta configuración también establece un límite de tiempo dentro del cual un consumidor debe completar una lectura si comienza desde el desplazamiento 0, para garantizar que obtenga una instantánea válida de la etapa final. De lo contrario, los marcadores de eliminación se podrían recopilar antes de que el consumidor complete su análisis. | 86400000 (24 \$1 60 \$1 60 \$1 1000 ms, es decir, 1 día), valor predeterminado de Apache Kafka | 
| log.cleaner.min.compaction.lag.ms | El tiempo mínimo durante el cual un mensaje permanece sin compactar en el registro. Esta configuración solo se aplica a los registros que se compactan. | 0, valor predeterminado de Apache Kafka | 
| log.cleaner.max.compaction.lag.ms | El tiempo máximo durante el cual un mensaje permanece no apto para la compactación en el registro. Esta configuración solo se aplica a los registros que se compactan. Este valor se debe encontrar dentro del rango de [7 días, Long.Max]. | 9223372036854775807, valor predeterminado de Apache Kafka | 
|  log.cleanup.policy  |  La política de limpieza predeterminada de los segmentos que superan el periodo de retención. Una lista de políticas válidas separadas por comas. Las políticas válidas son `delete` y `compact`. Para clústeres con almacenamiento por niveles habilitado, la política válida es únicamente `delete`.  | Valor predeterminado de Apache Kafka | 
|  log.message.timestamp.after.max.ms  |  La diferencia de marca de tiempo permitida entre la marca de tiempo del mensaje y la marca de tiempo del agente. La marca de tiempo del mensaje puede ser posterior o igual a la marca de tiempo del agente, con la diferencia máxima permitida determinada por el valor establecido en esta configuración. Si `log.message.timestamp.type=CreateTime`, el mensaje se rechazará si la diferencia entre las marcas de tiempo supera este umbral especificado. Esta configuración se ignora si `log.message.timestamp.type=LogAppendTime`.  | 86400000 (24 \$1 60 \$1 60 \$1 1000 ms, es decir, 1 día) | 
|  log.message.timestamp.before.max.ms  |  La diferencia de marca de tiempo permitida entre la marca de tiempo del agente y la marca de tiempo del mensaje. La marca de tiempo del mensaje puede ser anterior o igual a la marca de tiempo del agente, con la diferencia máxima permitida determinada por el valor establecido en esta configuración. Si `log.message.timestamp.type=CreateTime`, el mensaje se rechazará si la diferencia entre las marcas de tiempo supera este umbral especificado. Esta configuración se ignora si `log.message.timestamp.type=LogAppendTime`.  | 86400000 (24 \$1 60 \$1 60 \$1 1000 ms, es decir, 1 día) | 
|  log.message.timestamp.type  |  Especifica si la marca temporal del mensaje es la hora de creación del mensaje o la hora de adición del registro. Los valores permitidos son `CreateTime` y `LogAppendTime`.  | Valor predeterminado de Apache Kafka | 
|  log.retention.bytes  |  Tamaño máximo del registro antes de eliminarlo.  |  Valor predeterminado de Apache Kafka  | 
|  log.retention.ms  |  Cantidad de milisegundos durante los cuales se conserva un archivo de registro antes de eliminarlo.  |  Valor predeterminado de Apache Kafka  | 
|  max.connection.creation.rate  |  La tasa máxima de creación de conexiones permitida en el agente en un momento dado.  |  Valor predeterminado de Apache Kafka  | 
|  max.connections  |  Número máximo de conexiones permitidas en el agente en un momento dado. Este límite se aplica además de cualquier límite por dirección IP configurado mediante `max.connections.per.ip`.  |  Valor predeterminado de Apache Kafka  | 
|  max.connections.per.ip  |  El número máximo de conexiones permitidas desde cada dirección IP. Este valor se puede establecer en `0` si existen anulaciones configuradas mediante la propiedad max.connections.per.ip.overrides. Las nuevas conexiones procedentes de la dirección IP se descartan cuando se alcanza el límite.  |  Valor predeterminado de Apache Kafka  | 
|  max.connections.per.ip.overrides  |  Lista separada por comas de anulaciones por dirección IP o nombre de host que sustituyen el número máximo de conexiones predeterminado. Un ejemplo de valor es `hostName:100,127.0.0.1:200`  | Valor predeterminado de Apache Kafka | 
|  message.max.bytes  |  Tamaño de lote de registros más grande que admite Kafka. Si aumenta este valor y hay consumidores anteriores a 0.10.2, también debe aumentar el tamaño de recuperación de los consumidores para que se puedan recuperar lotes de registros de este tamaño. La versión de formato de mensaje más reciente siempre agrupa los mensajes en lotes para aumentar la eficacia. Las versiones de formato de mensaje anteriores no agrupan los registros sin comprimir en lotes y, en este caso, este límite se aplica únicamente a un solo registro. Puede establecer este valor por tema mediante la configuración `max.message.bytes` del tema.  | Valor predeterminado de Apache Kafka | 
|  producer.id.expiration.ms  |  El tiempo en ms que esperará el líder de una partición temática antes de que el productor IDs caduque. El productor IDs no caducará mientras una transacción asociada a él esté en curso. Ten en cuenta que el productor IDs puede caducar antes si se elimina la última escritura del identificador de productor debido a la configuración de retención del tema. Establecer este valor igual o superior a `delivery.timeout.ms` puede ayudar a evitar la caducidad durante los reintentos y a proteger frente a la duplicación de mensajes, pero el valor predeterminado debería ser razonable para la mayoría de los casos de uso.  | Valor predeterminado de Apache Kafka | 

## Configuraciones de temas en agentes Express
<a name="msk-configuration-express-topic-configuration"></a>

Puede utilizar los comandos de Apache Kafka para establecer o modificar propiedades de configuración de nivel de tema para temas nuevos y existentes. Si no se proporciona ninguna configuración de tema, Amazon MSK utiliza el valor predeterminado del agente. Al igual que con las configuraciones e agente, Amazon MSK protege algunas propiedades de configuración de temas frente a cambios. Los ejemplos incluyen el factor de replicación, `min.insync.replicas` y `unclean.leader.election.enable`. Si intenta crear un tema con un valor de factor de replicación distinto de `3`, Amazon MSK creará el tema con un factor de replicación de `3` de forma predeterminada. Para obtener más información acerca de las propiedades de configuración de temas y ejemplos de cómo establecerlas, consulte [Topic-Level Configs](https://kafka.apache.org/documentation/#topicconfigs) en la documentación de Apache Kafka.


| Propiedad | Description (Descripción) | 
| --- | --- | 
|  cleanup.policy  |  Esta configuración designa la política de retención que se utilizará en los segmentos de registro. La política de “eliminar” (que es la predeterminada) descartará los segmentos antiguos cuando se alcance su límite de tiempo o de tamaño de retención. La política de “compactar” habilitará la compactación de registros, que conserva el valor más reciente de cada clave. También es posible especificar ambas políticas en una lista separada por comas (por ejemplo, “eliminar,compactar”). En este caso, los segmentos antiguos se descartarán según la configuración de tiempo y tamaño de retención, mientras que los segmentos retenidos se compactarán. La compactación en agentes Express se activa una vez que los datos de una partición alcanzan los 256 MB.  | 
|  compression.type  |  Especifique el tipo de compresión final para un tema determinado. Esta configuración acepta los códecs de compresión estándar (`gzip`, `snappy`, `lz4` y `zstd`). Además, acepta `uncompressed`, que es equivalente a no usar compresión, y `producer`, que indica que se debe retener el códec de compresión original establecido por el productor.  | 
| delete.retention.ms |  La cantidad de tiempo durante la cual se conservan los marcadores de eliminación para los temas con registros compactados. Esta configuración también establece un límite de tiempo dentro del cual un consumidor debe completar una lectura si comienza desde el desplazamiento 0, para garantizar que obtenga una instantánea válida de la etapa final. De lo contrario, los marcadores de eliminación se podrían recopilar antes de que el consumidor complete su análisis. El valor predeterminado de esta configuración es 86400000 (24 × 60 × 60 × 1000 ms, es decir, 1 día). Valor predeterminado de Apache Kafka.  | 
|  max.message.bytes  |  El tamaño máximo permitido de un lote de registros por Kafka (después de la compresión, si la compresión está habilitada). Si este valor se incrementa y existen consumidores con una versión anterior a `0.10.2`, también se debe aumentar el tamaño de obtención de los consumidores para que puedan recuperar lotes de registros de este tamaño. En la versión de formato de mensaje más reciente, los registros siempre se agrupan en lotes para aumentar la eficacia. En versiones de formato de mensaje anteriores, los registros sin comprimir no se agrupan en lotes y este límite se aplica únicamente a un solo registro en este caso. Este valor se puede configurar por tema mediante la `max.message.bytes config` del tema.  | 
|  message.timestamp.after.max.ms  |  Esta configuración establece la diferencia de tiempo permitida entre la marca de tiempo del mensaje y la marca de tiempo del agente. La marca de tiempo del mensaje puede ser posterior o igual a la marca de tiempo del agente, con la diferencia máxima permitida determinada por el valor establecido en esta configuración. Si `message.timestamp.type=CreateTime`, el mensaje se rechazará si la diferencia entre las marcas de tiempo supera este umbral especificado. Esta configuración se ignora si `message.timestamp.type=LogAppendTime`.  | 
|  message.timestamp.before.max.ms  |  Esta configuración establece la diferencia de marca de tiempo permitida entre la marca de tiempo del agente y la marca de tiempo del mensaje. La marca de tiempo del mensaje puede ser anterior o igual a la marca de tiempo del agente, con la diferencia máxima permitida determinada por el valor establecido en esta configuración. Si `message.timestamp.type=CreateTime`, el mensaje se rechazará si la diferencia entre las marcas de tiempo supera este umbral especificado. Esta configuración se ignora si `message.timestamp.type=LogAppendTime`.  | 
|  message.timestamp.type  |  Defina si la marca de tiempo del mensaje corresponde al momento de creación del mensaje o al momento de incorporación al registro. El valor debe ser `CreateTime` o `LogAppendTime`  | 
| min.compaction.lag.ms |  El tiempo mínimo durante el cual un mensaje permanece sin compactar en el registro. Esta configuración solo se aplica a los registros que se compactan. El valor predeterminado de esta configuración es 0, valor predeterminado de Apache Kafka.  | 
| max.compaction.lag.ms |  El tiempo máximo durante el cual un mensaje permanece no apto para la compactación en el registro. Esta configuración solo se aplica a los registros que se compactan. Este valor se debe encontrar dentro del rango de [7 días, Long.Max]. El valor predeterminado de esta configuración es 9223372036854775807, el valor predeterminado de Apache Kafka.  | 
|  retention.bytes  |  Esta configuración controla el tamaño máximo que puede alcanzar una partición (que consta de segmentos de registro) antes de que se descarten los segmentos de registro antiguos para liberar espacio, cuando se utiliza la política de retención “eliminar”. De forma predeterminada, no existe un límite de tamaño, solo un límite de tiempo. Dado que este límite se aplica por partición, multiplíquelo por el número de particiones para calcular la retención del tema en bytes. Además, `retention.bytes configuration` funciona de forma independiente de las configuraciones `segment.ms` y `segment.bytes`. Asimismo, esta configuración desencadena la rotación de un nuevo segmento si `retention.bytes` se configura con el valor 0.  | 
|  retention.ms  |  Esta configuración controla el tiempo máximo durante el cual se retendrá un registro antes de descartar los segmentos antiguos para liberar espacio, cuando se utiliza la política de retención “eliminar”. Esto representa un acuerdo de nivel de servicio sobre la rapidez con la que los consumidores deben leer sus datos. Si se establece en `-1`, no se aplica ningún límite de tiempo. Además, la configuración `retention.ms` funciona de forma independiente de las configuraciones `segment.ms` y `segment.bytes`. Asimismo, esta configuración desencadena la rotación de un nuevo segmento si se cumple la condición `retention.ms`.  | 

# Configuraciones de solo lectura para agentes Express
<a name="msk-configuration-express-read-only"></a>

Amazon MSK establece los valores de estas configuraciones y los protege frente a cambios que podrían afectar la disponibilidad del clúster. Estos valores pueden variar en función de la versión de Apache Kafka que se ejecute en el clúster, por lo que recuerde comprobar los valores correspondientes al clúster específico.

La siguiente tabla enumera las configuraciones de solo lectura para los agentes Express.


| Propiedad | Description (Descripción) | Valor de agente Express | 
| --- | --- | --- | 
| broker.id | El identificador del agente para este servidor. | 1,2,3... | 
| broker.rack | Rack del agente. Se utiliza en la asignación de réplicas con reconocimiento de rack para tolerancia a errores. Ejemplos: ``, RACK1 `us-east-1d` | ID de la zona de disponibilidad (AZ) o ID de la subred | 
|  default.replication.factor  |  Factores de replicación predeterminados para todos los temas  |  3  | 
| fetch.max.bytes | El número máximo de bytes que se devolverán para una solicitud de obtención. | Valor predeterminado de Apache Kafka | 
| group.max.size | El número máximo de consumidores que puede admitir un único grupo de consumidores. | Valor predeterminado de Apache Kafka | 
| inter.broker.listener.name | Nombre del oyente utilizado para la comunicación entre agentes. | REPLICATION\$1SECURE o REPLICATION | 
| inter.broker.protocol.version | Especifica qué versión del protocolo de comunicación entre agentes se utiliza. | Valor predeterminado de Apache Kafka | 
| oyentes | Lista de oyentes: lista separada por comas de lo que URIs escucharemos y los nombres de los oyentes. Puede configurar la propiedad advertised.listeners property, pero no la propiedad listeners. | Generado por MSK | 
| log.message.format.version | Especifique la versión del formato de mensajes que el agente utilizará para anexar mensajes a los registros. | Valor predeterminado de Apache Kafka | 
| min.insync.replicas | Cuando un productor establece acks en `all` (o `-1`), el valor en `min.insync.replicas` especifica el número mínimo de réplicas que deben confirmar una escritura para que esta se considere exitosa. Si no se puede cumplir este mínimo, el productor genera una excepción (ya sea `NotEnoughReplicas` o `NotEnoughReplicasAfterAppend`). Puede usar el valor de acks desde el productor para aplicar garantías de durabilidad más estrictas. Para ello, establezca acks en “todos”. Esto garantiza que el productor emita una excepción si la mayoría de las réplicas no reciben una escritura. | 2 | 
| num.io.threads | Número de subprocesos que el servidor usa para producir solicitudes, que pueden incluir E/S de disco: (m7g.large, 8), (m7g.xlarge, 8), (m7g.2xlarge, 16), (m7g.4xlarge, 32), (m7g.8xlarge, 64), (m7g.12xlarge, 96), (m7g.16xlarge, 128) | Según el tipo de la instancia =Math.max (8, 2 \$1 v) CPUs | 
| num.network.threads | Número de subprocesos que el servidor usa para recibir solicitudes desde la red y enviar respuestas a la red: (m7g.large, 8), (m7g.xlarge, 8), (m7g.2xlarge, 8), (m7g.4xlarge, 16), (m7g.8xlarge, 32), (m7g.12xlarge, 48), (m7g.16xlarge, 64) | Según el tipo de la instancia =Math.max (8, v) CPUs | 
| replica.fetch.response.max.bytes | El número máximo de bytes previsto para la respuesta de recuperación completa. Los registros se recuperan en lotes y, si el primer lote de registro de la primera partición que no está vacía de la recuperación es superior a este valor, el lote de registro se devolverá para asegurar que se lleva a cabo el progreso. Esto no es un valor máximo absoluto. Las propiedades message.max.bytes (configuración del agente) o max.message.bytes (configuración del tema) especifican el tamaño máximo del lote de registros que acepta el agente. | Valor predeterminado de Apache Kafka | 
| request.timeout.ms | Esta configuración controla el tiempo máximo que el cliente esperará la respuesta de una solicitud. Si la respuesta no se recibe antes de que expire el tiempo de espera, el cliente reenviará la solicitud si es necesario o la marcará como fallida si se agotan los reintentos. | Valor predeterminado de Apache Kafka | 
| transaction.state.log.min.isr | Se sobrescribe la configuración min.insync.replicas para el tema de transacciones. | 2 | 
| transaction.state.log.replication.factor | El factor de replicación del tema de transacción. | Valor predeterminado de Apache Kafka | 
| unclean.leader.election.enable | Permite que réplicas que no estén en el conjunto ISR actúen como líder como último recurso, aunque esto puede provocar pérdida de datos. | FALSO | 

# Operaciones de configuración de agentes
<a name="msk-configuration-operations"></a>

Las configuraciones de los agentes de Apache Kafka pueden ser estáticas o dinámicas. Las configuraciones estáticas requieren reiniciar el agente para que los cambios se apliquen. Las configuraciones dinámicas no requieren reiniciar el agente para que la configuración se actualice. Para obtener más información sobre las propiedades de configuración y los modos de actualización, consulte Configuración de Apache Kafka. 

En este tema se describe cómo crear configuraciones de MSK personalizadas y cómo realizar operaciones en ellas. Para obtener información acerca de cómo utilizar las configuraciones de MSK para crear o actualizar clústeres, consulte [Características y conceptos clave de Amazon MSK](operations.md).

**Topics**
+ [Crear una configuración](msk-configuration-operations-create.md)
+ [Actualización de la configuración](msk-configuration-operations-update.md)
+ [Eliminación de una configuración](msk-configuration-operations-delete.md)
+ [Obtención de metadatos de configuración](msk-configuration-operations-describe.md)
+ [Obtención de detalles sobre una revisión de la configuración](msk-configuration-operations-describe-revision.md)
+ [Enumeración de las configuraciones de la cuenta para la región actual](msk-configuration-operations-list.md)
+ [Estados de configuración de Amazon MSK](msk-configuration-states.md)

# Crear una configuración
<a name="msk-configuration-operations-create"></a>

En este proceso, se describe cómo crear una configuración personalizada de Amazon MSK y cómo utilizarlo para realizar operaciones.

1. Cree un archivo donde especifique las propiedades de configuración que desea establecer y los valores que desea asignarles. A continuación se muestra el contenido de un archivo de configuración de ejemplo.

   ```
   auto.create.topics.enable = true
   
   log.roll.ms = 604800000
   ```

1. Ejecute el siguiente AWS CLI comando y *config-file-path* sustitúyalo por la ruta al archivo en el que guardó la configuración en el paso anterior.
**nota**  
El nombre que elija para la configuración debe coincidir con la siguiente expresión regular: «^[0-9A-Za-z][0-9A-Za-z-]\$10,\$1\$1».

   ```
   aws kafka create-configuration --name "ExampleConfigurationName" --description "Example configuration description." --kafka-versions "1.1.1" --server-properties fileb://config-file-path
   ```

   El siguiente es un ejemplo de una respuesta correcta después de ejecutar este comando.

   ```
   {
       "Arn": "arn:aws:kafka:us-east-1:123456789012:configuration/SomeTest/abcdabcd-1234-abcd-1234-abcd123e8e8e-1",
       "CreationTime": "2019-05-21T19:37:40.626Z",
       "LatestRevision": {
           "CreationTime": "2019-05-21T19:37:40.626Z",
           "Description": "Example configuration description.",
           "Revision": 1
       },
       "Name": "ExampleConfigurationName"
   }
   ```

1. El comando anterior devuelve un nombre de recurso de Amazon (ARN) para la nueva configuración. Guarde este ARN, porque lo necesita para hacer referencia a esta configuración en otros comandos. Si pierde el ARN de la configuración, puede enumerar todas las configuraciones de su cuenta para volver a encontrarlo.

# Actualización de la configuración
<a name="msk-configuration-operations-update"></a>

En este proceso, se describe cómo actualizar una configuración de Amazon MSK personalizada.

1. Cree un archivo donde especifique las propiedades de configuración que desea actualizar y los valores que desea asignarles. A continuación se muestra el contenido de un archivo de configuración de ejemplo.

   ```
   auto.create.topics.enable = true
   
   min.insync.replicas = 2
   ```

1. Ejecute el siguiente AWS CLI comando y *config-file-path* sustitúyalo por la ruta del archivo en el que guardó la configuración en el paso anterior.

   *configuration-arn*Sustitúyalo por el ARN que obtuvo al crear la configuración. Si no guardó el ARN cuando creó la configuración, puede usar el comando `list-configurations` para enumerar todas las configuraciones de su cuenta. La configuración que desea incluir en la lista aparece en la respuesta. El ARN de la configuración también aparece en dicha lista.

   ```
   aws kafka update-configuration --arn configuration-arn --description "Example configuration revision description." --server-properties fileb://config-file-path
   ```

1. El siguiente es un ejemplo de una respuesta correcta después de ejecutar este comando.

   ```
   {
       "Arn": "arn:aws:kafka:us-east-1:123456789012:configuration/SomeTest/abcdabcd-1234-abcd-1234-abcd123e8e8e-1",
       "LatestRevision": {
           "CreationTime": "2020-08-27T19:37:40.626Z",
           "Description": "Example configuration revision description.",
           "Revision": 2
       }
   }
   ```

# Eliminación de una configuración
<a name="msk-configuration-operations-delete"></a>

En el siguiente procedimiento se muestra cómo eliminar una configuración que no está asociada a un clúster. No puede eliminar una configuración asociada a un clúster.

1. Para ejecutar este ejemplo, *configuration-arn* sustitúyalo por el ARN que obtuvo al crear la configuración. Si no guardó el ARN cuando creó la configuración, puede usar el comando `list-configurations` para enumerar todas las configuraciones de su cuenta. La configuración que desea incluir en la lista aparece en la respuesta. El ARN de la configuración también aparece en dicha lista.

   ```
   aws kafka delete-configuration --arn configuration-arn
   ```

1. El siguiente es un ejemplo de una respuesta correcta después de ejecutar este comando.

   ```
   {
       "arn": " arn:aws:kafka:us-east-1:123456789012:configuration/SomeTest/abcdabcd-1234-abcd-1234-abcd123e8e8e-1",
       "state": "DELETING"
   }
   ```

# Obtención de metadatos de configuración
<a name="msk-configuration-operations-describe"></a>

En el siguiente procedimiento, se muestra cómo describir una configuración de Amazon MSK para obtener metadatos sobre la configuración.

1. Este comando devuelve metadatos acerca de la configuración. Para obtener una descripción detallada de la configuración, ejecute `describe-configuration-revision`.

   Para ejecutar este ejemplo, *configuration-arn* sustitúyalo por el ARN que obtuvo al crear la configuración. Si no guardó el ARN cuando creó la configuración, puede usar el comando `list-configurations` para enumerar todas las configuraciones de su cuenta. La configuración que desea incluir en la lista aparece en la respuesta. El ARN de la configuración también aparece en dicha lista.

   ```
   aws kafka describe-configuration --arn configuration-arn
   ```

1. El siguiente es un ejemplo de una respuesta correcta después de ejecutar este comando.

   ```
   {
       "Arn": "arn:aws:kafka:us-east-1:123456789012:configuration/SomeTest/abcdabcd-abcd-1234-abcd-abcd123e8e8e-1",
       "CreationTime": "2019-05-21T00:54:23.591Z",
       "Description": "Example configuration description.",
       "KafkaVersions": [
           "1.1.1"
       ],
       "LatestRevision": {
           "CreationTime": "2019-05-21T00:54:23.591Z",
           "Description": "Example configuration description.",
           "Revision": 1
       },
       "Name": "SomeTest"
   }
   ```

# Obtención de detalles sobre una revisión de la configuración
<a name="msk-configuration-operations-describe-revision"></a>

En este proceso, se ofrece una descripción detallada de la revisión de la configuración de Amazon MSK.

Si usa el comando `describe-configuration` para describir una configuración de MSK, verá los metadatos de la configuración. Para obtener una descripción de la configuración, use el comando `describe-configuration-revision`.
+ Ejecute el siguiente comando y *configuration-arn* sustitúyalo por el ARN que obtuvo al crear la configuración. Si no guardó el ARN cuando creó la configuración, puede usar el comando `list-configurations` para enumerar todas las configuraciones de su cuenta. La configuración que desea incluir en la lista que aparece en la respuesta. El ARN de la configuración también aparece en dicha lista.

  ```
  aws kafka describe-configuration-revision --arn configuration-arn --revision 1
  ```

  El siguiente es un ejemplo de una respuesta correcta después de ejecutar este comando.

  ```
  {
      "Arn": "arn:aws:kafka:us-east-1:123456789012:configuration/SomeTest/abcdabcd-abcd-1234-abcd-abcd123e8e8e-1",
      "CreationTime": "2019-05-21T00:54:23.591Z",
      "Description": "Example configuration description.",
      "Revision": 1,
      "ServerProperties": "YXV0by5jcmVhdGUudG9waWNzLmVuYWJsZSA9IHRydWUKCgp6b29rZWVwZXIuY29ubmVjdGlvbi50aW1lb3V0Lm1zID0gMTAwMAoKCmxvZy5yb2xsLm1zID0gNjA0ODAwMDAw"
  }
  ```

  El valor de `ServerProperties` se codifica en base64. Si utiliza un decodificador base64 (por ejemplo, https://www.base64decode.org/) para decodificarlo manualmente, obtendrá el contenido del archivo de configuración original que utilizó para crear la configuración personalizada. En este caso, obtiene lo siguiente:

  ```
  auto.create.topics.enable = true
  
  log.roll.ms = 604800000
  ```

# Enumeración de las configuraciones de la cuenta para la región actual
<a name="msk-configuration-operations-list"></a>

Este proceso describe cómo enumerar todas las configuraciones de Amazon MSK de su cuenta para la AWS región actual.
+ Ejecute el comando siguiente.

  ```
  aws kafka list-configurations
  ```

  El siguiente es un ejemplo de una respuesta correcta después de ejecutar este comando.

  ```
  {
      "Configurations": [
          {
              "Arn": "arn:aws:kafka:us-east-1:123456789012:configuration/SomeTest/abcdabcd-abcd-1234-abcd-abcd123e8e8e-1",
              "CreationTime": "2019-05-21T00:54:23.591Z",
              "Description": "Example configuration description.",
              "KafkaVersions": [
                  "1.1.1"
              ],
              "LatestRevision": {
                  "CreationTime": "2019-05-21T00:54:23.591Z",
                  "Description": "Example configuration description.",
                  "Revision": 1
              },
              "Name": "SomeTest"
          },
          {
              "Arn": "arn:aws:kafka:us-east-1:123456789012:configuration/SomeTest/abcdabcd-1234-abcd-1234-abcd123e8e8e-1",
              "CreationTime": "2019-05-03T23:08:29.446Z",
              "Description": "Example configuration description.",
              "KafkaVersions": [
                  "1.1.1"
              ],
              "LatestRevision": {
                  "CreationTime": "2019-05-03T23:08:29.446Z",
                  "Description": "Example configuration description.",
                  "Revision": 1
              },
              "Name": "ExampleConfigurationName"
          }
      ]
  }
  ```

# Estados de configuración de Amazon MSK
<a name="msk-configuration-states"></a>

Una configuración de Amazon MSK puede tener uno de los siguientes estados: Para realizar una operación en una configuración, la configuración debe estar en el estado `ACTIVE` o `DELETE_FAILED`:
+ `ACTIVE`
+ `DELETING`
+ `DELETE_FAILED`