Configuraciones personalizadas de agentes Express de MSK (acceso de lectura/escritura)
Puede actualizar las configuraciones de agentes con acceso de lectura/escritura de una de las siguientes maneras: mediante la característica de actualización de configuración de Amazon MSK o a través de la API AlterConfig de 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 Actualización de configuraciones de agentes
Temas
Configuraciones estáticas en agentes Express de MSK
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.
| Propiedad | Descripción | Valor predeterminado |
|---|---|---|
|
allow.everyone.if.no.acl.found |
Si desea establecer esta propiedad en falsa, primero asegúrese de definir listas de control de acceso (ACL) de Apache Kafka para el clúster. Si establece esta propiedad en falso y no define primero las ACL de Apache Kafka, 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 |
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 |
86400000 (24 * 60 * 60 * 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 |
86400000 (24 * 60 * 60 * 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 desde 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 |
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 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 |
Valor predeterminado de Apache Kafka |
|
socket.receive.buffer.bytes |
El búfer SO_RCVBUF 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_SNDBUF 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 de un cliente supera este valor, el agente devuelve un error en 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 expiración del identificador del productor, ya que provoca que los identificadores de productor expiren cuando transcurre este tiempo desde la última escritura realizada con el identificador de productor correspondiente. Los ID de productor pueden vencer antes si se elimina la última escritura del ID del 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
Puede utilizar la API AlterConfig 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 a nivel de clúster y a nivel de agente que no requieren el reinicio del agente.
| Propiedad | Descripción | Valor predeterminado |
|---|---|---|
|
advertised.listeners |
Oyentes que se publican para que los clientes los utilicen, si son distintos de la propiedad de configuración Además, a diferencia de Esta propiedad se establece a nivel de 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 ( |
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 * 60 * 60 * 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 |
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 |
86400000 (24 * 60 * 60 * 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 |
86400000 (24 * 60 * 60 * 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 |
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 |
Valor predeterminado de Apache Kafka |
|
max.connections.per.ip |
Número máximo de conexiones permitidas desde cada dirección IP. Este valor se puede establecer en |
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 valor de ejemplo es |
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 |
Valor predeterminado de Apache Kafka |
|
producer.id.expiration.ms |
El tiempo, en milisegundos, que un líder de partición de un tema esperará antes de que caduquen los ID de productor. Los ID de productor no caducarán mientras una transacción asociada a estos siga en curso. Tenga en cuenta que los ID de productor pueden caducar antes si la última escritura realizada con ese ID de productor se elimina debido a la configuración de retención del tema. Establecer este valor igual o superior a |
Valor predeterminado de Apache Kafka |
Configuraciones a nivel de tema en agentes Express
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 a nivel de tema, Amazon MSK utiliza el valor predeterminado del agente. Al igual que con las configuraciones a nivel de agente, Amazon MSK protege algunas propiedades de configuración a nivel de tema 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
| Propiedad | 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 ( |
| 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 |
|
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.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 |
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 |
| 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 a nivel de partición, multiplíquelo por el número de particiones para calcular la retención del tema en bytes. Además, |
|
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 |