

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Configurações do Amazon MSK Provisioned
<a name="msk-configuration"></a>

O Amazon MSK fornece configurações padrão para agentes, tópicos e nós de metadados. Você também pode criar configurações personalizadas e usá-las para criar novos clusters do MSK ou atualizar clusters existentes. Uma configuração do MSK consiste em um conjunto de propriedades e seus valores correspondentes. Dependendo do tipo de agente que você usa em seu cluster, há um conjunto diferente de padrões de configuração e um conjunto diferente de configurações que você pode modificar. Consulte as seções abaixo para obter mais detalhes sobre como configurar seus agentes Standard e Express.

**Topics**
+ [Configurações do agente Standard](msk-configuration-standard.md)
+ [Configurações do agente Express](msk-configuration-express.md)
+ [Operações de configuração do agente](msk-configuration-operations.md)

# Configurações do agente Standard
<a name="msk-configuration-standard"></a>

Esta seção descreve as propriedades de configuração para agentes Standard.

**Topics**
+ [Configurações personalizadas do Amazon MSK](msk-configuration-properties.md)
+ [Configuração padrão do Amazon MSK](msk-default-configuration.md)
+ [Diretrizes para a configuração de armazenamento em camadas no nível de tópico do Amazon MSK](msk-guidelines-tiered-storage-topic-level-config.md)

# Configurações personalizadas do Amazon MSK
<a name="msk-configuration-properties"></a>

É possível usar o Amazon MSK para criar uma configuração personalizada do MSK na qual você define as seguintes propriedades de configuração do Apache Kafka. As propriedades que você não define explicitamente obtêm os valores que têm em [Configuração padrão do Amazon MSK](msk-default-configuration.md). Para obter mais informações sobre as propriedades da configuração, consulte [Configuração do Apache Kafka](https://kafka.apache.org/documentation/#configuration).


| Name (Nome) | Description | 
| --- | --- | 
| allow.everyone.if.no.acl.found | Se você quiser definir essa propriedade comofalse, primeiro certifique-se de definir o Apache Kafka ACLs para seu cluster. Se você definir essa propriedade como false e não definir primeiro o Apache Kafka ACLs, perderá o acesso ao cluster. Se isso acontecer, é possível atualizar a configuração novamente e definir essa propriedade como true para recuperar o acesso ao cluster. | 
| auto.create.topics.enable | Habilita a criação automática de tópicos no servidor. | 
| compression.type | O tipo de compactação final de um determinado tópico. Você pode definir essa propriedade para os codecs de compactação padrão (gzip, snappy, lz4 e zstd). Além disso, também aceita uncompressed. Esse valor é equivalente a nenhuma compactação. Se você definir o valor como producer, isso significa reter o codec de compactação original definido pelo produtor. | 
|  connections.max.idle.ms  | O tempo limite de conexões ociosas em milissegundos. Os threads do processador de soquete do servidor fecham as conexões que estiverem ociosas há mais tempo que o que o valor definido para essa propriedade. | 
| default.replication.factor | O fator de replicação padrão para tópicos criados automaticamente. | 
| delete.topic.enable | Habilita a operação de exclusão de tópico. Se desativar essa configuração, você não poderá excluir um tópico por meio da ferramenta de administração. | 
| group.initial.rebalance.delay.ms | O período que o coordenador do grupo espera que mais consumidores de dados ingressem em um novo grupo antes de executar a primeira operação de rebalanceamento. Um atraso mais longo significa potencialmente menos rebalanceamentos, mas aumenta o tempo até o início do processamento. | 
| group.max.session.timeout.ms | Tempo limite máximo de sessão para consumidores registrados. Tempos limite mais longos permitem que os consumidores tenham mais tempo para processar mensagens entre pulsações ao custo de mais tempo para detectar falhas. | 
| group.min.session.timeout.ms | Tempo limite mínimo de sessão para consumidores registrados. Tempos limite mais curtos resultam em detecção mais rápida de falhas ao custo de pulsações mais frequentes do consumidor. Isso pode sobrecarregar os recursos do agente. | 
| leader.imbalance.per.broker.percentage | A proporção de desequilíbrio de líder permitida por agente. O controlador aciona um balanceamento de líder caso ele ultrapasse esse valor por agente. Esse valor é especificado em porcentagem. | 
| log.cleaner.delete.retention.ms | Período de tempo que você deseja que o Apache Kafka mantenha registros excluídos. O valor mínimo é 0. | 
| log.cleaner.min.cleanable.ratio |  Essa propriedade de configuração pode ter valores entre 0 e 1. Esse valor determina a frequência na qual o compactador de logs tenta limpar o log (se a compactação de logs estiver habilitada). Por padrão, o Apache Kafka evita limpar um log se mais de 50% do log tiver sido compactado. Essa proporção limita o espaço máximo que o log desperdiça com duplicatas (em 50%, isso significa que até 50% do log pode ser de duplicatas). Uma proporção maior significa menos limpezas mais eficientes, mas também mais espaço desperdiçado no log.  | 
| log.cleanup.policy | A política de limpeza padrão para segmentos além da janela de retenção. Uma lista de políticas válidas separadas por vírgulas. As políticas válidas são delete e compact. Para clusters habilitados para armazenamento em camadas, a política válida é somente delete. | 
| log.flush.interval.messages | O número de mensagens acumuladas em uma partição de log antes que as mensagens sejam liberadas para o disco. | 
| log.flush.interval.ms | O período máximo em milissegundos no qual uma mensagem em qualquer tópico permanece na memória antes de ser liberada para o disco. Se você não definir esse valor, o sistema usará o valor em log.flush.scheduler.interval.ms. O valor mínimo é 0. | 
| log.message.timestamp.difference.max.ms | Essa configuração foi descontinuada no Kafka 3.6.0. Duas configurações, log.message.timestamp.before.max.ms e log.message.timestamp.after.max.ms, foram adicionadas. A diferença máxima de tempo entre o carimbo de data/hora em que um agente recebe uma mensagem e o carimbo de data/hora especificado na mensagem. Se log.message.timestamp.type=CreateTime, uma mensagem será rejeitada se a diferença no timestamp exceder esse limite. Essa configuração será ignorada se log.message.timestamp.type=. LogAppendTime | 
| log.message.timestamp.type | Especifica se o carimbo de data/hora na mensagem é o horário de criação da mensagem ou da adição no log. Os valores permitidos são CreateTime e LogAppendTime. | 
| log.retention.bytes | Tamanho máximo do log antes de ser excluído. | 
| log.retention.hours | Número de horas para manter um arquivo de log antes de excluí-lo, terciário à propriedade log.retention.ms. | 
| log.retention.minutes | Número de minutos para manter um arquivo de log antes de excluí-lo, secundário à propriedade log.retention.ms. Se você não definir esse valor, o sistema usará o valor de log.retention.hours. | 
| log.retention.ms | Número de milissegundos para manter um arquivo de log antes de excluí-lo (em milissegundos). Se não for definido, o valor de log.retention.minutes será usado. | 
| log.roll.ms | Tempo máximo para que um novo segmento de log seja implantado (em milissegundos). Se você não definir essa propriedade, o sistema usará o valor de log.roll.hours. O valor mínimo possível para essa propriedade é 1. | 
| log.segment.bytes | Tamanho máximo de um único arquivo de log. | 
| max.incremental.fetch.session.cache.slots | Número máximo de sessões de busca incrementais mantidas. | 
| message.max.bytes |  O maior tamanho de lote de registros que o Kafka permite. Se você aumentar esse valor e houver consumidores anteriores à versão 0.10.2, também será necessário aumentar o tamanho de busca dos consumidores para que eles possam buscar lotes de registros desse tamanho. O formato de mensagem mais recente sempre agrupa as mensagens em lotes visando eficiência. As versões anteriores de formato de mensagem não agrupam em lotes os registros não compactados, e, nesse caso, esse limite é aplicável somente a um único registro. É possível definir esse valor por tópico com a configuração max.message.bytes de nível do tópico.  | 
| min.insync.replicas |  Quando um produtor define acks como `"all"` (ou `"-1"`), o valor em min.insync.replicas especifica o número mínimo de réplicas que devem confirmar uma gravação para que a gravação seja considerada bem-sucedida. Se esse mínimo não puder ser atingido, o produtor cria uma exceção ( NotEnoughReplicas ou NotEnoughReplicasAfterAppend). Você pode usar valores em min.insync.replicas e acks para forçar maiores garantias de durabilidade. Por exemplo, você poderia criar um tópico com um fator de replicação de 3, definir min.insync.replicas como 2 e produzir com acks de `"all"`. Isso garante que o produtor gere uma exceção se a maioria das réplicas não receber uma gravação.  | 
| num.io.threads | O número de threads que o servidor usa para processar solicitações, que podem incluir E/S de disco. | 
| num.network.threads | O número de threads que o servidor usa para receber solicitações da rede e enviar respostas para ela. | 
| num.partitions | Número padrão de partições de log por tópico. | 
| num.recovery.threads.per.data.dir | O número de threads por diretório de dados a ser usado para recuperar logs na inicialização e para liberá-los no desligamento. | 
| num.replica.fetchers | O número de threads de busca usados para replicar mensagens de um agente de origem. Se você aumentar esse valor, poderá aumentar o grau de I/O paralelismo no corretor seguidor. | 
| offsets.retention.minutes | Depois que um grupo de consumidores perde todos os consumidores (isto é, torna-se vazio), seus deslocamentos são mantidos durante esse período de retenção antes de serem descartados. Para consumidores autônomos (ou seja, que usam atribuição manual), os deslocamentos expiram depois da última confirmação somada a esse período de retenção. | 
| offsets.topic.replication.factor | O fator de replicação do tópico de deslocamento. Defina esse valor mais alto para garantir a disponibilidade. A criação do tópico interno falha até que o tamanho do cluster atenda a esse requisito de fator de replicação. | 
| replica.fetch.max.bytes | O número de bytes de mensagens para tentar buscar para cada partição. Esse não é um máximo absoluto. Se o primeiro lote de registros na primeira partição não vazia da busca for maior que esse valor, o lote de registros será retornado para garantir o progresso. As propriedades message.max.bytes (configuração do agente) ou max.message.bytes (configuração do tópico) definem o tamanho máximo do lote de registros aceito pelo agente. | 
| replica.fetch.response.max.bytes | O número máximo de bytes esperado para toda a resposta de busca. Os registros são buscados em lotes e, se o primeiro lote de registros na primeira partição não vazia da busca for maior que esse valor, o lote de registros ainda será retornado para garantir o progresso. Esse não é um máximo absoluto. As propriedades message.max.bytes (configuração do agente) ou max.message.bytes (configuração do tópico) especificam o tamanho máximo do lote de registros aceito pelo agente. | 
| replica.lag.time.max.ms | Se um seguidor não enviou nenhuma solicitação de busca ou se não consumiu até o deslocamento final do log do líder por pelo menos esse número de milissegundos, o líder remove o seguidor do ISR.MinValue: 10000MaxValue = 30000 | 
| replica.selector.class | O nome da classe totalmente qualificado que implementa. ReplicaSelector O agente usa esse valor para encontrar a réplica de leitura preferencial. Se estiver usando a versão 2.4.1 ou mais recente do Apache Kafka e quiser permitir que os clientes busquem da réplica mais próxima, defina essa propriedade como org.apache.kafka.common.replica.RackAwareReplicaSelector. Para obter mais informações, consulte [Apache Kafka versão 2.4.1 (use 2.4.1.1 alternativamente)](supported-kafka-versions.md#2.4.1). | 
| replica.socket.receive.buffer.bytes | O buffer de recebimento do soquete para solicitações de rede. | 
| socket.receive.buffer.bytes | O buffer SO\$1RCVBUF dos soquetes do servidor de soquetes. O valor mínimo que você pode definir para essa propriedade é -1. Se o valor for -1, o Amazon MSK usará o sistema operacional padrão. | 
| socket.request.max.bytes | O número máximo de bytes em uma solicitação de soquete. | 
| socket.send.buffer.bytes | O buffer SO\$1SNDBUF dos soquetes do servidor de soquetes. O valor mínimo que você pode definir para essa propriedade é -1. Se o valor for -1, o Amazon MSK usará o sistema operacional padrão. | 
| transaction.max.timeout.ms | Tempo limite máximo para transações. Se o tempo de transação solicitado de um cliente exceder esse valor, o corretor retornará um erro em InitProducerIdRequest. Isso impede que um cliente use um tempo limite muito grande e pode impedir que os consumidores leiam os tópicos incluídos na transação. | 
| transaction.state.log.min.isr | A configuração de min.insync.replicas substituída para o tópico de transação. | 
| transaction.state.log.replication.factor | O fator de replicação do tópico de transação. Defina essa propriedade com um valor maior para aumentar a disponibilidade. A criação do tópico interno falha até que o tamanho do cluster atenda a esse requisito de fator de replicação. | 
| transactional.id.expiration.ms | O tempo em milissegundos que o coordenador da transação deve aguardar para receber qualquer atualização do status da transação atual antes que o coordenador expire sua ID transacional. Essa configuração também influencia a expiração do ID do produtor porque faz com que o produtor IDs expire quando esse tempo decorre após a última gravação com o ID do produtor fornecido. O produtor IDs pode expirar mais cedo se a última gravação do ID do produtor for excluída devido às configurações de retenção do tópico. O valor mínimo para essa propriedade é de 1 milissegundo. | 
| unclean.leader.election.enable | Indica se as réplicas que não estão no conjunto ISR devem atuar como líderes em último recurso, mesmo que isso possa resultar em perda de dados. | 
| zookeeper.connection.timeout.ms | ZooKeeper clusters de modos. Tempo máximo que o cliente espera para estabelecer uma conexão. ZooKeeper Se você não definir esse valor, o sistema usará o valor de zookeeper.session.timeout.ms. MinValue = 6000 MaxValue (inclusive) = 18000 Recomenda-se que você defina esse valor como 10.000 em T3.small para evitar o tempo de inatividade do cluster.  | 
| zookeeper.session.timeout.ms |  ZooKeeper clusters de modos. O tempo limite da ZooKeeper sessão do Apache em milissegundos. MinValue = 6000 MaxValue (inclusive) = 18000  | 

Para saber como criar uma configuração personalizada do MSK, listar todas as configurações ou descrevê-las, consulte [Operações de configuração do agente](msk-configuration-operations.md). Para criar um cluster do MSK com uma configuração personalizada do MSK ou para atualizar um cluster com uma nova configuração personalizada, consulte [Principais recursos e conceitos do Amazon MSK](operations.md).

Quando você atualiza o cluster existente do MSK com uma configuração personalizada do MSK, o Amazon MSK faz reinicializações contínuas quando necessário, empregando as práticas recomendadas para minimizar o tempo de inatividade do cliente. Por exemplo, depois que o Amazon MSK reinicia cada agente, o Amazon MSK tenta deixar o agente recuperar os dados que possam ter sido perdidos pelo agente durante a atualização da configuração antes de avançar para o próximo agente.

## Configuração dinâmica do Amazon MSK
<a name="msk-dynamic-confinguration"></a>

Além das propriedades de configuração fornecidas pelo Amazon MSK, você pode definir dinamicamente as propriedades de configuração em nível de cluster e de agente que não exigem uma reinicialização do agente. É possível definir dinamicamente algumas propriedades de configuração. Trata-se das propriedades que não estão marcadas como somente leitura na tabela em [Configurações do agente](https://kafka.apache.org/documentation/#brokerconfigs) na documentação do Apache Kafka. Para obter informações sobre a configuração dinâmica e comandos de exemplo, consulte [Atualização das configurações do agente](https://kafka.apache.org/documentation/#dynamicbrokerconfigs) na documentação do Apache Kafka.

**nota**  
É possível definir a propriedade `advertised.listeners`, mas não a propriedade `listeners`.

## Configuração no nível de tópico do Amazon MSK
<a name="msk-topic-confinguration"></a>

Você pode usar os comandos do Apache Kafka para definir ou modificar propriedades de configuração em nível de tópico para tópicos novos e existentes. Para obter mais informações sobre as propriedades de configuração no nível de tópico e exemplos sobre como defini-las, consulte [Configurações no nível de tópico](https://kafka.apache.org/documentation/#topicconfigs) na documentação do Apache Kafka.

# Configuração padrão do Amazon MSK
<a name="msk-default-configuration"></a>

Quando você cria um cluster do MSK sem especificar uma configuração personalizada do MSK, o Amazon MSK cria e usa uma configuração padrão com os valores apresentados na tabela a seguir. Para propriedades que não estejam nessa tabela, o Amazon MSK usará os padrões associados à sua versão do Apache Kafka. Para obter uma lista desses valores padrão, consulte [Configuração do Apache Kafka](https://kafka.apache.org/documentation/#configuration). 


| Name (Nome) | Description | Valor padrão para cluster de armazenamento sem camadas | Valor padrão para cluster de armazenamento em camadas | 
| --- | --- | --- | --- | 
| allow.everyone.if.no.acl.found | Se nenhum padrão de recurso corresponder a um recurso específico, o recurso não tem nenhum associado ACLs. Nesse caso, se você definir essa propriedade como true, todos os usuários terão acesso ao recurso, não apenas os superusuários. | true | true | 
| auto.create.topics.enable | Habilita a criação automática de um tópico no servidor. | false | false | 
| auto.leader.rebalance.enable | Habilita o equilíbrio de líderes automáticos. Se necessário, um thread em segundo plano verifica e inicia o balanceamento do líder em intervalos regulares. | true | true | 
| default.replication.factor | Fatores de replicação padrão para tópicos criados automaticamente. | O valor é 3 para clusters em 3 zonas de disponibilidade e 2 para clusters em 2 zonas de disponibilidade. | O valor é 3 para clusters em 3 zonas de disponibilidade e 2 para clusters em 2 zonas de disponibilidade. | 
|  local.retention.bytes  |  O tamanho máximo dos segmentos de log locais de uma partição antes que ela exclua os segmentos antigos. Se você não definir esse valor, o sistema usará o valor de log.retention.bytes. O valor efetivo sempre deve ser menor que ou igual ao valor de log.retention.bytes. O valor padrão de -2 indica que não há limite para a retenção local. Isso corresponde à configuração de -1 para retention.ms/bytes. As propriedades local.retention.ms e local.retention.bytes são semelhantes a log.retention, pois são usadas para determinar por quanto tempo os segmentos de log devem permanecer no armazenamento local. As configurações existentes de log.retention.\$1 são configurações de retenção para a partição do tópico. Isso inclui armazenamento local e remoto. Valores válidos: números inteiros em [-2; \$1Inf]  | -2 para ilimitado | -2 para ilimitado | 
|  local.retention.ms  | O número de milissegundos para a retenção do segmento de log local antes da exclusão. Se você não definir esse valor, o Amazon MSK usará o valor de log.retention.ms. O valor efetivo sempre deve ser menor que ou igual ao valor de log.retention.bytes. O valor padrão de -2 indica que não há limite para a retenção local. Isso corresponde à configuração de -1 para retention.ms/bytes.Os valores de local.retention.ms e local.retention.bytes são semelhantes a log.retention. O MSK usa essa configuração para determinar por quanto tempo os segmentos de log devem permanecer no armazenamento local. As configurações existentes de log.retention.\$1 são configurações de retenção para a partição do tópico. Isso inclui armazenamento local e remoto. Os valores válidos são números inteiros maiores que 0. | -2 para ilimitado | -2 para ilimitado | 
|  log.message.timestamp.difference.max.ms  | Essa configuração foi descontinuada no Kafka 3.6.0. Duas configurações, log.message.timestamp.before.max.ms e log.message.timestamp.after.max.ms, foram adicionadas. A diferença máxima permitida entre o timestamp em que um agente recebe uma mensagem e o timestamp especificado na mensagem. Se log.message.timestamp.type=CreateTime, uma mensagem será rejeitada se a diferença no timestamp exceder esse limite. Essa configuração será ignorada se log.message.timestamp.type=. LogAppendTime Para evitar a repetição desnecessária e frequente de logs, a diferença máxima permitida para o carimbo de data/hora não deve ser maior que log.retention.ms. | 9223372036854775807 | 86400000 para Kafka 2.8.2.tiered e Kafka 3.7.x em camadas. | 
| log.segment.bytes | O tamanho máximo de um único arquivo de log. | 1073741824 | 134217728 | 
| min.insync.replicas |  Quando um produtor define o valor de confirmações (as confirmações que o produtor receber o agente do Kafka) como `"all"` (ou `"-1"`), o valor em min.insync.replicas especifica o número mínimo de réplicas que devem confirmar uma gravação para que a gravação seja considerada bem-sucedida. Se esse valor não atingir esse mínimo, o produtor gera uma exceção ( NotEnoughReplicas ou NotEnoughReplicasAfterAppend). Quando você usar os valores em min.insync.replicas e acks juntos, será possível forçar maiores garantias de durabilidade. Por exemplo, você poderia criar um tópico com um fator de replicação de 3, definir min.insync.replicas como 2 e produzir com acks de `"all"`. Isso garante que o produtor gere uma exceção se a maioria das réplicas não receber uma gravação.  | O valor é 2 para clusters em 3 zonas de disponibilidade e 1 para clusters em 2 zonas de disponibilidade. | O valor é 2 para clusters em 3 zonas de disponibilidade e 1 para clusters em 2 zonas de disponibilidade. | 
| num.io.threads | O número de threads que o servidor usa para produzir solicitações, que podem incluir E/S de disco. | 8 | max (8, vCPUs) onde v CPUs depende do tamanho da instância do broker | 
| num.network.threads | O número de threads que o servidor usa para receber solicitações da rede e enviar respostas para a rede. | 5 | max (5, vCPUs /2) onde v CPUs depende do tamanho da instância do broker | 
| num.partitions | Número padrão de partições de log por tópico. | 1 | 1 | 
| num.replica.fetchers | Número de segmentos de busca usados para replicar mensagens de um corretor de origem. Se você aumentar esse valor, poderá aumentar o grau de I/O paralelismo no corretor seguidor. | 2 | max (2, vCPUs /4) onde v CPUs depende do tamanho da instância do broker | 
|  remote.log.msk.disable.policy  |  Usado com remote.storage.enable para desabilitar o armazenamento em camadas. Defina essa política como Excluir para indicar que os dados no armazenamento em camadas são excluídos quando você definir remote.storage.enable como falso.  | N/D | Nenhum | 
| remote.log.reader.threads | O tamanho do pool de threads do leitor de logs remoto. Usado no agendamento de tarefas para buscar dados do armazenamento remoto. | N/D | max (10, v CPUs \$1 0,67) onde v CPUs depende do tamanho da instância do broker | 
|  remote.storage.enable  | Se definido como verdadeiro, habilita o armazenamento em camadas (remoto) para um tópico. Desabilita o armazenamento em camadas no nível de tópico se definido como falso e se remote.log.msk.disable.policy estiver definido como Excluir. Ao desabilitar o armazenamento em camadas, você exclui dados do armazenamento remoto. Ao desabilitar o armazenamento em camadas para um tópico, não será possível habilitá-lo novamente. | false | false | 
| replica.lag.time.max.ms | Se um seguidor não enviou nenhuma solicitação de busca ou se não consumiu até o deslocamento final do log do líder por pelo menos esse número de milissegundos, o líder remove o seguidor do ISR. | 30000 | 30000 | 
|  retention.ms  |  Campo obrigatório. O tempo mínimo é de 3 dias. Não há padrão porque a configuração é obrigatória. O Amazon MSK usa o valor retention.ms com local.retention.ms para determinar quando os dados são movidos do armazenamento local para o armazenamento em camadas. O valor local.retention.ms especifica quando mover dados do armazenamento local para o armazenamento em camadas. O valor retention.ms especifica quando remover dados do armazenamento em camadas (ou seja, remoção do cluster). Valores válidos: números inteiros em [-1; \$1Inf]  | Mínimo de 259.200.000 milissegundos (3 dias). Use -1 para retenção infinita. | Mínimo de 259.200.000 milissegundos (3 dias). Use -1 para retenção infinita. | 
| socket.receive.buffer.bytes | O buffer SO\$1RCVBUF dos soquetes do servidor de soquetes. Se o valor for -1, o sistema operacional padrão será usado. | 102400 | 102400 | 
| socket.request.max.bytes | Número máximo de bytes em uma solicitação de soquete. | 104857600 | 104857600 | 
| socket.send.buffer.bytes | O buffer SO\$1SNDBUF dos soquetes do servidor de soquetes. Se o valor for -1, o sistema operacional padrão será usado. | 102400 | 102400 | 
| unclean.leader.election.enable | Indica se você deseja que as réplicas que não estão no conjunto ISR devem atuar como líderes em último recurso, mesmo que isso possa resultar em perda de dados. | verdadeiro | false | 
| zookeeper.session.timeout.ms |  O tempo limite da ZooKeeper sessão do Apache em milissegundos.  | 18000 | 18000 | 
| zookeeper.set.acl | O cliente definido a ser usado com segurança ACLs. | false | false | 

Para obter informações sobre como especificar valores para uma configuração personalizada, consulte [Configurações personalizadas do Amazon MSK](msk-configuration-properties.md).

# Diretrizes para a configuração de armazenamento em camadas no nível de tópico do Amazon MSK
<a name="msk-guidelines-tiered-storage-topic-level-config"></a>

Veja a seguir as configurações e limitações padrão quando você configura o armazenamento em camadas no nível de tópico.
+ O Amazon MSK não é compatível com tamanhos menores de segmentos de log para tópicos com o armazenamento em camadas ativado. Se você quiser criar um segmento, há um tamanho mínimo de segmento de log de 48 MiB ou um tempo mínimo de rolagem do segmento de 10 minutos. Esses valores são mapeados para as propriedades segment.bytes e segment.ms.
+ O valor de local.retention. ms/bytes can't equal or exceed the retention.ms/bytes. Essa é a configuração de retenção de armazenamento em camadas.
+ O valor padrão para local.retention. ms/bytes is -2. This means that the retention.ms value is used for local.retention.ms/bytes. Nesse caso, os dados permanecem no armazenamento local e no armazenamento em camadas (uma cópia em cada) e expiram juntos. Para essa opção, uma cópia dos dados locais é mantida no armazenamento remoto. Nesse caso, os dados lidos do tráfego de consumo vêm do armazenamento local.
+ O valor padrão para retention.ms é de 7 dias. Não há limite de tamanho padrão para retention.bytes.
+ O valor mínimo para retention.ms/bytes é -1. Isso significa retenção infinita.
+ O valor mínimo para local.retention. ms/bytes is -2. This means infinite retention for local storage. It matches with the retention.ms/bytesdefinindo como -1.
+ A configuração retention.ms no nível de tópico é obrigatória para tópicos com armazenamento em camadas ativado. O mínimo de retention.ms é de 3 dias.

Para obter mais informações sobre restrições de armazenamento em camadas, consulte [Restrições e limitações do armazenamento em camadas para clusters do Amazon MSK](msk-tiered-storage.md#msk-tiered-storage-constraints).

# Configurações do agente Express
<a name="msk-configuration-express"></a>

O Apache Kafka tem centenas de configurações de agente que você pode usar para ajustar o desempenho do seu cluster do MSK Provisioned. Definir valores errôneos ou abaixo do ideal pode afetar a confiabilidade e o desempenho do cluster. Os agentes Express melhoram a disponibilidade e a durabilidade de seus clusters do MSK Provisioned com a definição de valores ideais para configurações críticas, protegendo-os de configurações incorretas comuns. Há três categorias de configurações com base no acesso de leitura e gravação: configurações de [leitura/gravação (editável)](msk-configuration-express-read-write.md), [somente leitura](msk-configuration-express-read-only.md) e configurações sem leitura/gravação. Algumas configurações ainda usam o valor padrão do Apache Kafka com a versão do Apache Kafka que o cluster está executando. Elas são marcadas como Padrão do Apache Kafka.

**Topics**
+ [Configurações personalizadas do agente Express do MSK (acesso de leitura/gravação)](msk-configuration-express-read-write.md)
+ [Configurações somente leitura do agente Express](msk-configuration-express-read-only.md)

# Configurações personalizadas do agente Express do MSK (acesso de leitura/gravação)
<a name="msk-configuration-express-read-write"></a>

Você pode atualizar as configurações do read/write broker usando o [recurso de configuração de atualização](msk-update-cluster-config.md) do Amazon MSK ou usando a API do Apache Kafka. AlterConfig As configurações do agente do Apache Kafka são estáticas ou dinâmicas. As configurações estáticas exigem a reinicialização do agente para que a configuração seja aplicada, enquanto as configurações dinâmicas não precisam da reinicialização do agente. Para obter mais informações sobre propriedades de configuração e modos de atualização, consulte [Atualização das configurações do agente.](https://kafka.apache.org/documentation/#dynamicbrokerconfigs)

**Topics**
+ [Configurações estáticas em agentes Express do MSK](#msk-configuration-express-static-configuration)
+ [Configurações dinâmicas em agentes Express](#msk-configuration-express-dynamic-configuration)
+ [Configurações em nível de tópico em agentes Express](#msk-configuration-express-topic-configuration)

## Configurações estáticas em agentes Express do MSK
<a name="msk-configuration-express-static-configuration"></a>

É possível usar o Amazon MSK para criar uma configuração personalizada do MSK na qual você define as propriedades a seguir. O Amazon MSK define e gerencia todas as outras propriedades que você não configurou. Você pode criar e atualizar arquivos de configuração estáticos no console do MSK ou por meio do [comando de configurações](msk-configuration-operations-create.md).


| Propriedade | Description | Valor padrão | 
| --- | --- | --- | 
|  allow.everyone.if.no.acl.found  |  Se você quiser definir essa propriedade como false, primeiro certifique-se de definir o Apache Kafka ACLs para seu cluster. Se você definir essa propriedade como false e não definir primeiro o Apache Kafka ACLs, perderá o acesso ao cluster. Caso isso ocorra, é possível atualizar novamente a configuração e definir essa propriedade como verdadeira para recuperar o acesso ao cluster.  |  true  | 
|  auto.create.topics.enable  |  Habilita a criação automática de um tópico no servidor.  |  false  | 
| compression.type |  Especifica o tipo de compactação final de um determinado tópico. Essa configuração aceita os codecs de compactação padrão: gzip, snappy, lz4, zstd. Essa configuração também aceita `uncompressed`, que equivale a nenhuma compressão; e `producer`, que significa manter o codec de compactação original definido pelo produtor. | Padrão do Apache Kafka | 
|  connections.max.idle.ms  |  O tempo limite de conexões ociosas em milissegundos. Os threads do processador de soquete do servidor fecham as conexões que estiverem ociosas há mais tempo que o que o valor definido para essa propriedade.  |  Padrão do Apache Kafka  | 
|  delete.topic.enable  |  Habilita a operação de exclusão de tópico. Se desativar essa configuração, você não poderá excluir um tópico por meio da ferramenta de administração.  |  Padrão do Apache Kafka  | 
|  group.initial.rebalance.delay.ms  |   O período que o coordenador do grupo espera que mais consumidores de dados ingressem em um novo grupo antes de executar a primeira operação de rebalanceamento. Um atraso mais longo significa potencialmente menos rebalanceamentos, mas aumenta o tempo até o início do processamento.  |  Padrão do Apache Kafka  | 
|  group.max.session.timeout.ms  |  Tempo limite máximo de sessão para consumidores registrados. Tempos limite mais longos permitem que os consumidores tenham mais tempo para processar mensagens entre pulsações ao custo de mais tempo para detectar falhas.  |  Padrão do Apache Kafka  | 
|  leader.imbalance.per.broker.percentage  |  A proporção de desequilíbrio de líder permitida por agente. O controlador aciona um balanceamento de líder caso ele ultrapasse esse valor por agente. Esse valor é especificado em porcentagem.  |  Padrão do Apache Kafka  | 
| log.cleanup.policy | A política de limpeza padrão para segmentos além da janela de retenção. Uma lista de políticas válidas separadas por vírgulas. As políticas válidas são delete e compact. Para clusters habilitados para armazenamento em camadas, a política válida é somente delete. | Padrão do Apache Kafka | 
| log.message.timestamp.after.max.ms |  A diferença de data e hora permitida entre o timestamp da mensagem e o timestamp do agente. O carimbo de data e hora da mensagem pode ser posterior ou igual ao carimbo do agente, com a diferença máxima permitida determinada pelo valor definido nessa configuração. Se for `log.message.timestamp.type=CreateTime`, a mensagem será rejeitada se a diferença nos carimbos de data/hora exceder esse limite especificado. Essa configuração será ignorada se for `log.message.timestamp.type=LogAppendTime`.  | 86400000 (24 \$1 60 \$1 60 \$1 1000 ms, ou seja, 1 dia) | 
| log.message.timestamp.before.max.ms |  A diferença de data e hora permitida entre os carimbos de data e hora do agente e da mensagem. O carimbo de data e hora da mensagem pode ser anterior ou igual ao carimbo do agente, com a diferença máxima permitida determinada pelo valor definido nessa configuração. Se for `log.message.timestamp.type=CreateTime`, a mensagem será rejeitada se a diferença nos carimbos de data/hora exceder esse limite especificado. Essa configuração será ignorada se for `log.message.timestamp.type=LogAppendTime`.  | 86400000 (24 \$1 60 \$1 60 \$1 1000 ms, ou seja, 1 dia) | 
| log.message.timestamp.type | Especifica se o carimbo de data/hora na mensagem é o horário de criação da mensagem ou da adição no log. Os valores permitidos são CreateTime e LogAppendTime. | Padrão do Apache Kafka | 
| log.retention.bytes | Tamanho máximo do log antes de ser excluído. | Padrão do Apache Kafka | 
| log.retention.ms | Número de milissegundos para manter um arquivo de log antes de excluí-lo. | Padrão do Apache Kafka | 
| max.connections.per.ip | O número máximo de conexões permitido para cada endereço IP. Pode ser definido como 0 se houver substituições configuradas usando a propriedade max.connections.per.ip.overrides. Novas conexões do endereço IP serão descartadas se o limite for atingido. | Padrão do Apache Kafka | 
|  max.incremental.fetch.session.cache.slots  |  Número máximo de sessões de busca incrementais mantidas.  |  Padrão do Apache Kafka  | 
| message.max.bytes |  O maior tamanho de lote de registros que o Kafka permite. Se você aumentar esse valor e houver consumidores anteriores à versão 0.10.2, também será necessário aumentar o tamanho de busca dos consumidores para que eles possam buscar lotes de registros desse tamanho. O formato de mensagem mais recente sempre agrupa as mensagens em lotes visando eficiência. As versões anteriores de formato de mensagem não agrupam em lotes os registros não compactados, e, nesse caso, esse limite é aplicável somente a um único registro. É possível definir esse valor por tópico com a configuração `max.message.bytes` de nível do tópico.  | Padrão do Apache Kafka | 
|  num.partitions  |  Número padrão de partições de log por tópico.  |  1  | 
|  offsets.retention.minutes  |  Depois que um grupo de consumidores perde todos os consumidores (isto é, torna-se vazio), seus deslocamentos são mantidos durante esse período de retenção antes de serem descartados. Para consumidores autônomos (ou seja, que usam atribuição manual), os deslocamentos expiram depois da última confirmação somada a esse período de retenção.  |  Padrão do Apache Kafka  | 
|  replica.fetch.max.bytes  |  O número de bytes de mensagens para tentar buscar para cada partição. Esse não é um máximo absoluto. Se o primeiro lote de registros na primeira partição não vazia da busca for maior que esse valor, o lote de registros será retornado para garantir o progresso. As propriedades message.max.bytes (configuração do agente) ou max.message.bytes (configuração do tópico) definem o tamanho máximo do lote de registros aceito pelo agente.  |  Padrão do Apache Kafka  | 
|  replica.selector.class  |  O nome da classe totalmente qualificado que implementa. ReplicaSelector O agente usa esse valor para encontrar a réplica de leitura preferencial. Se quiser permitir que os clientes busquem na réplica mais próxima, defina essa propriedade como `org.apache.kafka.common.replica.RackAwareReplicaSelector`.  |  Padrão do Apache Kafka  | 
|  socket.receive.buffer.bytes  |  O buffer SO\$1RCVBUF dos soquetes do servidor de soquetes. Se o valor for -1, o sistema operacional padrão será usado.  |  102400  | 
|  socket.request.max.bytes  |  Número máximo de bytes em uma solicitação de soquete.  |  104857600  | 
|  socket.send.buffer.bytes  |  O buffer SO\$1SNDBUF dos soquetes do servidor de soquetes. Se o valor for -1, o sistema operacional padrão será usado.  |  102400  | 
|  transaction.max.timeout.ms  |  Tempo limite máximo para transações. Se o tempo de transação solicitado de um cliente exceder esse valor, o corretor retornará um erro em InitProducerIdRequest. Isso impede que um cliente use um tempo limite muito grande e pode impedir que os consumidores leiam os tópicos incluídos na transação.  |  Padrão do Apache Kafka  | 
|  transactional.id.expiration.ms  |  O tempo em milissegundos que o coordenador da transação deve aguardar para receber qualquer atualização do status da transação atual antes que o coordenador expire sua ID transacional. Essa configuração também influencia a expiração do ID do produtor porque faz com que IDs o produtor expire quando esse tempo decorre após a última gravação com o ID do produtor fornecido. O produtor IDs pode expirar mais cedo se a última gravação do ID do produtor for excluída devido às configurações de retenção do tópico. O valor mínimo para essa propriedade é de 1 milissegundo.  |  Padrão do Apache Kafka  | 

## Configurações dinâmicas em agentes Express
<a name="msk-configuration-express-dynamic-configuration"></a>

Você pode usar a AlterConfig API Apache Kafka ou a ferramenta Kafka-configs.sh para editar as seguintes configurações dinâmicas. O Amazon MSK define e gerencia todas as outras propriedades que você não configurou. Você pode definir dinamicamente as propriedades de configuração em nível de cluster e de agente que não exigem a reinicialização do agente.


| Propriedade | Description | Valor padrão  | 
| --- | --- | --- | 
|  advertised.listeners  |  Receptores a serem publicados para os clientes usarem, se forem diferentes da propriedade de configuração `listeners`. Em ambientes de IaaS, pode precisar ser diferente da interface à qual o agente se vincula. Se isso não for definido, será usado o valor para receptores. Ao contrário dos receptores, não é válido anunciar o meta-endereço 0.0.0.0. E diferente de `listeners`, pode haver portas duplicadas nessa propriedade, de forma que um receptor possa ser configurado para anunciar o endereço de outro receptor. Isso pode ser útil em alguns casos em que balanceadores de carga externos forem usados. Essa propriedade é definida em um nível por agente.  |  nulo  | 
|  compression.type  |  O tipo de compactação final de um determinado tópico. Você pode definir essa propriedade para os codecs de compactação padrão (`gzip`, `snappy`, `lz4` e `zstd`). Além disso, também aceita `uncompressed`. Esse valor é equivalente a nenhuma compactação. Se você definir o valor como `producer`, isso significa reter o codec de compactação original definido pelo produtor.  | Padrão do Apache Kafka | 
| log.cleaner.delete.retention.ms | A duração do período de retenção de marcadores de exclusão a excluir em tópicos de logs compactados. Essa configuração também fornece um limite no tempo em que um consumidor deve concluir uma leitura se começar do deslocamento 0 para garantir que obtenha um instantâneo válido do estágio final. Caso contrário, os marcadores de exclusão a excluir podem ser coletados antes que concluam a digitalização. | 86400000 (24 \$1 60 \$1 60 \$1 1000 ms, ou seja, 1 dia), Padrão do Apache Kafka | 
| log.cleaner.min.compaction.lag.ms | O tempo mínimo que uma mensagem permanecerá descompactada no log. Essa configuração é aplicável somente para logs que estejam compactados. | 0, Padrão do Apache Kafka | 
| log.cleaner.max.compaction.lag.ms | O tempo máximo que uma mensagem permanecerá inelegível para compactação no log. Essa configuração é aplicável somente para logs que estejam compactados. Essa configuração estaria limitada a um intervalo de [7 dias, Long.Max]. | 9223372036854775807, Padrão do Apache Kafka | 
|  log.cleanup.policy  |  A política de limpeza padrão para segmentos além da janela de retenção. Uma lista de políticas válidas separadas por vírgulas. As políticas válidas são `delete` e `compact`. Para clusters habilitados para armazenamento em camadas, a política válida é somente `delete`.  | Padrão do Apache Kafka | 
|  log.message.timestamp.after.max.ms  |  A diferença de data e hora permitida entre o timestamp da mensagem e o timestamp do agente. O carimbo de data e hora da mensagem pode ser posterior ou igual ao carimbo do agente, com a diferença máxima permitida determinada pelo valor definido nessa configuração. Se for `log.message.timestamp.type=CreateTime`, a mensagem será rejeitada se a diferença nos carimbos de data/hora exceder esse limite especificado. Essa configuração será ignorada se for `log.message.timestamp.type=LogAppendTime`.  | 86400000 (24 \$1 60 \$1 60 \$1 1000 ms, ou seja, 1 dia) | 
|  log.message.timestamp.before.max.ms  |  A diferença de data e hora permitida entre os carimbos de data e hora do agente e da mensagem. O carimbo de data e hora da mensagem pode ser anterior ou igual ao carimbo do agente, com a diferença máxima permitida determinada pelo valor definido nessa configuração. Se for `log.message.timestamp.type=CreateTime`, a mensagem será rejeitada se a diferença nos carimbos de data/hora exceder esse limite especificado. Essa configuração será ignorada se for `log.message.timestamp.type=LogAppendTime`.  | 86400000 (24 \$1 60 \$1 60 \$1 1000 ms, ou seja, 1 dia) | 
|  log.message.timestamp.type  |  Especifica se o carimbo de data/hora na mensagem é o horário de criação da mensagem ou da adição no log. Os valores permitidos são `CreateTime` e `LogAppendTime`.  | Padrão do Apache Kafka | 
|  log.retention.bytes  |  Tamanho máximo do log antes de ser excluído.  |  Padrão do Apache Kafka  | 
|  log.retention.ms  |  Número de milissegundos para manter um arquivo de log antes de excluí-lo.  |  Padrão do Apache Kafka  | 
|  max.connection.creation.rate  |  A taxa máxima de criação de conexão permitida no agente a qualquer momento.  |  Padrão do Apache Kafka  | 
|  max.connections  |  O número máximo de conexões permitido no agente a qualquer momento. Esse limite é aplicado além de quaisquer limites por IP configurados usando `max.connections.per.ip`.  |  Padrão do Apache Kafka  | 
|  max.connections.per.ip  |  O número máximo de conexões permitido para cada endereço IP. Pode ser definido como `0` se houver substituições configuradas usando a propriedade max.connections.per.ip.overrides. Novas conexões do endereço IP serão descartadas se o limite for atingido.  |  Padrão do Apache Kafka  | 
|  max.connections.per.ip.overrides  |  Uma lista separada por vírgula de nomes por IP ou host substitui o número máximo padrão de conexões. Um exemplo de valor é `hostName:100,127.0.0.1:200`  | Padrão do Apache Kafka | 
|  message.max.bytes  |  O maior tamanho de lote de registros que o Kafka permite. Se você aumentar esse valor e houver consumidores anteriores à versão 0.10.2, também será necessário aumentar o tamanho de busca dos consumidores para que eles possam buscar lotes de registros desse tamanho. O formato de mensagem mais recente sempre agrupa as mensagens em lotes visando eficiência. As versões anteriores de formato de mensagem não agrupam em lotes os registros não compactados, e, nesse caso, esse limite é aplicável somente a um único registro. É possível definir esse valor por tópico com a configuração `max.message.bytes` de nível do tópico.  | Padrão do Apache Kafka | 
|  producer.id.expiration.ms  |  O tempo em ms que um líder de partição de tópico esperará antes de expirar o produtor IDs. IDs O produtor não expirará enquanto uma transação associada a ele ainda estiver em andamento. Observe que o produtor IDs pode expirar mais cedo se a última gravação do ID do produtor for excluída devido às configurações de retenção do tópico. Definir esse valor igual ou maior que `delivery.timeout.ms` pode ajudar a evitar a expiração durante novas tentativas e a proteger contra a duplicação de mensagens, mas o padrão deve ser razoável para a maioria dos casos de uso.  | Padrão do Apache Kafka | 

## Configurações em nível de tópico em agentes Express
<a name="msk-configuration-express-topic-configuration"></a>

Você pode usar os comandos do Apache Kafka para definir ou modificar propriedades de configuração em nível de tópico para tópicos novos e existentes. Se você não puder fornecer nenhuma configuração em nível de tópico, o Amazon MSK usará o agente padrão. Assim como nas configurações em nível de agente, o Amazon MSK protege algumas das propriedades de configuração em nível de tópico contra alterações. Os exemplos incluem fator de replicação `min.insync.replicas` e `unclean.leader.election.enable`. Se você tentar criar um tópico com um valor de fator de replicação diferente de `3`, por padrão o Amazon MSK criará o tópico com um fator de replicação de `3`. Para obter mais informações sobre as propriedades de configuração no nível de tópico e exemplos sobre como defini-las, consulte [Configurações no nível de tópico](https://kafka.apache.org/documentation/#topicconfigs) na documentação do Apache Kafka.


| Propriedade | Description | 
| --- | --- | 
|  cleanup.policy  |  Essa configuração designa a política de retenção a ser usada em segmentos de log. A política de “exclusão” (que é a padrão) descartará segmentos antigos quando seu tempo de retenção ou limite de tamanho for atingido. A política “compacta” permitirá a compactação de logs retendo o valor mais recente de cada chave. Também é possível especificar ambas as políticas em uma lista separada por virgulas (por exemplo, “excluir, compactar”). Nesse caso, os segmentos antigos serão descartados de acordo com a configuração de tamanho e tempo de retenção, enquanto os segmentos retidos serão compactados. A compactação em agentes Express é acionada depois que os dados em uma partição atingem 256 MB.  | 
|  compression.type  |  Especifica o tipo de compactação final de um determinado tópico. Essa configuração aceita os codecs de compressão padrão (`gzip`, `snappy`, `lz4`, `zstd`). Também aceita `uncompressed`, que equivale a nenhuma compressão, e `producer`, que significa manter o codec de compactação original definido pelo produtor.  | 
| delete.retention.ms |  A duração do período de retenção de marcadores de exclusão a excluir em tópicos de logs compactados. Essa configuração também fornece um limite no tempo em que um consumidor deve concluir uma leitura se começar do deslocamento 0 para garantir que obtenha um instantâneo válido do estágio final. Caso contrário, os marcadores de exclusão a excluir podem ser coletados antes que concluam a digitalização. O valor padrão para essa configuração é 86400000 (24 \$1 60 \$1 60 \$1 1000 ms, ou seja, 1 dia), Padrão do Apache Kafka  | 
|  max.message.bytes  |  O maior tamanho de lote de logs permitido pelo Kafka (após a compactação, se a compactação estiver ativada). Se ele for aumentado e houver consumidores mais antigos que `0.10.2`, o tamanho de busca dos consumidores também deverá ser aumentado para que possam buscar lotes de logs desse tamanho. Na versão mais recente do formato de mensagem, os registros são sempre agrupados em lotes para obter eficiência. Nas versões anteriores do formato de mensagem, os registros não compactados não são agrupados em lotes, e, nesse caso, esse limite se aplica apenas a um único registro. Pode ser definido por tópico com o nível de tópico `max.message.bytes config`.  | 
|  message.timestamp.after.max.ms  |  Essa configuração define a diferença permitida entre os carimbos de data e hora da mensagem e do agente. O carimbo de data e hora da mensagem pode ser posterior ou igual ao carimbo do agente, com a diferença máxima permitida determinada pelo valor definido nessa configuração. Se for `message.timestamp.type=CreateTime`, a mensagem será rejeitada se a diferença nos carimbos de data/hora exceder esse limite especificado. Essa configuração será ignorada se for `message.timestamp.type=LogAppendTime`.  | 
|  message.timestamp.before.max.ms  |  Essa configuração define a diferença de data e hora permitida entre os carimbos de data e hora do agente e da mensagem. O carimbo de data e hora da mensagem pode ser anterior ou igual ao carimbo do agente, com a diferença máxima permitida determinada pelo valor definido nessa configuração. Se for `message.timestamp.type=CreateTime`, a mensagem será rejeitada se a diferença nos carimbos de data/hora exceder esse limite especificado. Essa configuração será ignorada se for `message.timestamp.type=LogAppendTime`.  | 
|  message.timestamp.type  |  Especifica se o carimbo de data e hora da mensagem é a hora da criação da mensagem ou a hora do acréscimo no log. O valor pode ser `CreateTime` ou `LogAppendTime`  | 
| min.compaction.lag.ms |  O tempo mínimo que uma mensagem permanecerá descompactada no log. Essa configuração é aplicável somente para logs que estejam compactados. O valor padrão para essa configuração é 0, Padrão do Apache Kafka  | 
| max.compaction.lag.ms |  O tempo máximo que uma mensagem permanecerá inelegível para compactação no log. Essa configuração é aplicável somente para logs que estejam compactados. Essa configuração estaria limitada a um intervalo de [7 dias, Long.Max]. O valor padrão para essa configuração é 9223372036854775807, Padrão do Apache Kafka.  | 
|  retention.bytes  |  Essa configuração controla o tamanho máximo que uma partição (que consiste em segmentos de log) pode crescer antes de descartarmos segmentos de log antigos para liberar espaço se estivermos usando a política de retenção de “exclusão”. Por padrão, não há limite de tamanho, apenas um limite de tempo. Como esse limite é imposto no nível da partição, multiplique-o pelo número de partições para calcular a retenção do tópico em bytes. Além disso, `retention.bytes configuration` opera independentemente das configurações `segment.ms` e `segment.bytes`. Ele também aciona a rolagem de um novo segmento se `retention.bytes` estiver configurado como zero.  | 
|  retention.ms  |  Essa configuração controla o tempo máximo de retenção de um log antes de descartarmos segmentos de log antigos para liberar espaço se estivermos usando a política de retenção de “exclusão”. Representa um SLA sobre a rapidez com que os consumidores devem ler seus dados. Se estiver definido como `-1`, nenhum limite de tempo será aplicado. E a configuração `retention.ms` opera independentemente das configurações `segment.ms` e `segment.bytes`. Ele também aciona a rolagem de um novo segmento se a condição `retention.ms` for atendida.  | 

# Configurações somente leitura do agente Express
<a name="msk-configuration-express-read-only"></a>

O Amazon MSK define os valores dessas configurações e as protege contra alterações que possam afetar a disponibilidade do seu cluster. Esses valores podem mudar dependendo da versão do Apache Kafka em execução no cluster, portanto, lembre-se de verificar os valores do seu cluster específico.

A tabela a seguir lista as configurações somente leitura para agentes Express.


| Propriedade | Description | Valor expresso do agente | 
| --- | --- | --- | 
| broker.id | O ID do agente desse servidor. | 1,2,3... | 
| broker.rack | Prateleira do agente. Isso será usado na atribuição de replicação com reconhecimento de rack para tolerância a falhas. Exemplos: `RACK1`, `us-east-1d` | ID AZ ou ID de sub-rede | 
|  default.replication.factor  |  Fatores de replicação padrão para todos os tópicos.  |  3  | 
| fetch.max.bytes | O número máximo de bytes que retornaremos para uma solicitação de busca. | Padrão do Apache Kafka | 
| group.max.size | O número máximo de consumidores que um único grupo de consumidores pode acomodar. | Padrão do Apache Kafka | 
| inter.broker.listener.name | Nome do receptor usado para comunicação entre agentes. | REPLICATION\$1SECURE ou REPLICATION | 
| inter.broker.protocol.version | Especifica qual versão do protocolo entre agentes é usada. | Padrão do Apache Kafka | 
| Receptores | Lista de ouvintes - Lista separada por vírgulas dos nomes dos URIs ouvintes e os nomes dos ouvintes. É possível definir advertised.listeners property, mas não a propriedade listeners. | MSK-generated | 
| log.message.format.version | Especifique a versão do formato da mensagem que o agente usará para anexar mensagens aos logs. | Padrão do Apache Kafka | 
| min.insync.replicas | Quando um produtor define acks como `all` (ou `-1`), o valor em `min.insync.replicas` especifica o número mínimo de réplicas que devem confirmar que uma gravação foi considerada bem-sucedida. Se não for possível atender a esse mínimo, o produtor criará uma exceção (`NotEnoughReplicas` ou `NotEnoughReplicasAfterAppend`). Você pode usar o valor de acks de seu produtor para forçar garantias de durabilidade maiores. Ao definir acks como “todos”. Isso garante que o produtor gere uma exceção se a maioria das réplicas não receber uma gravação. | 2 | 
| num.io.threads | Número de threads que o servidor usa para produzir solicitações que podem incluir E/S de discos. (m7g.large, 8), (m7g.xlarge, 8), (m7g.2xlarge, 16), (m7g.4xlarge, 32), (m7g.8xlarge, 64), (m7g.12xlarge, 96), (m7g.16xlarge, 128) | Com base no tipo de instância. =Math.max (8, 2\$1 v) CPUs | 
| num.network.threads | O número de threads que o servidor usa para receber solicitações da rede e enviar respostas para a rede. (m7g.large, 8), (m7g.xlarge, 8), (m7g.2xlarge, 8), (m7g.4xlarge, 16), (m7g.8xlarge, 32), (m7g.12xlarge, 48), (m7g.16xlarge, 64) | Com base no tipo de instância. =Math.max (8, v) CPUs | 
| replica.fetch.response.max.bytes | O número máximo de bytes esperado para toda a resposta de busca. Os registros são buscados em lotes e, se o primeiro lote de registros na primeira partição não vazia da busca for maior que esse valor, o lote de registros ainda será retornado para garantir o progresso. Esse não é um máximo absoluto. As propriedades message.max.bytes (configuração do agente) ou max.message.bytes (configuração do tópico) especificam o tamanho máximo do lote de logs aceito pelo agente. | Padrão do Apache Kafka | 
| request.timeout.ms | A configuração controla o período máximo de espera do cliente pela resposta de uma solicitação. Se a resposta não for recebida antes que o tempo limite termine, o cliente reenviará a solicitação, se necessário, ou a solicitação falhará se as novas tentativas forem esgotadas. | Padrão do Apache Kafka | 
| transaction.state.log.min.isr | A configuração min.insync.replicas substituída no tópico de transação. | 2 | 
| transaction.state.log.replication.factor | O fator de replicação do tópico de transação. | Padrão do Apache Kafka | 
| unclean.leader.election.enable | Permite que as réplicas que não estão no conjunto ISR atuem como líderes em último recurso, mesmo que isso possa resultar em perda de dados. | FALSE | 

# Operações de configuração do agente
<a name="msk-configuration-operations"></a>

As configurações do agente do Apache Kafka são estáticas ou dinâmicas. As configurações estáticas exigem a reinicialização do agente para que sejam aplicadas. As configurações dinâmicas não precisam ser reiniciadas pelo agente para que sejam atualizadas. Para obter mais informações sobre as propriedades de configuração e modos de atualização, consulte Configuração do Apache Kafka. 

Este tópico descreve como criar configurações personalizadas do MSK e como executar operações nelas. Para obter informações sobre como usar configurações do MSK para criar ou atualizar clusters, consulte [Principais recursos e conceitos do Amazon MSK](operations.md).

**Topics**
+ [Criar uma configuração](msk-configuration-operations-create.md)
+ [Atualizar configuração](msk-configuration-operations-update.md)
+ [Excluir configuração](msk-configuration-operations-delete.md)
+ [Obter metadados de configuração](msk-configuration-operations-describe.md)
+ [Obter detalhes sobre uma revisão de configuração](msk-configuration-operations-describe-revision.md)
+ [Listar as configurações em sua conta para a região atual](msk-configuration-operations-list.md)
+ [Estados das configurações do Amazon MSK](msk-configuration-states.md)

# Criar uma configuração
<a name="msk-configuration-operations-create"></a>

Este processo descreve como criar configurações personalizadas do Amazon MSK e como executar operações nelas.

1. Crie um arquivo para especificar as propriedades de configuração que você deseja definir e os valores que deseja atribuir a elas. Veja a seguir o conteúdo de um arquivo de configuração de exemplo.

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

1. Execute o AWS CLI comando a seguir e *config-file-path* substitua pelo caminho para o arquivo em que você salvou sua configuração na etapa anterior.
**nota**  
O nome que você escolher para sua configuração deve corresponder ao seguinte regex: "^[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
   ```

   Veja a seguir um exemplo de uma resposta bem-sucedida após a execução desse 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. O comando anterior retorna um nome do recurso da Amazon (ARN) para sua nova configuração. Salve esse ARN porque você precisará dele ao se referir a essa configuração em outros comandos. Se você perder o ARN da configuração, poderá listar todas as configurações da sua conta para encontrá-lo novamente.

# Atualizar configuração
<a name="msk-configuration-operations-update"></a>

Este processo descreve como atualizar uma configuração personalizada do Amazon MSK.

1. Crie um arquivo para especificar as propriedades de configuração que você deseja atualizar e os valores que deseja atribuir a elas. Veja a seguir o conteúdo de um arquivo de configuração de exemplo.

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

1. Execute o AWS CLI comando a seguir e *config-file-path* substitua pelo caminho para o arquivo em que você salvou sua configuração na etapa anterior.

   *configuration-arn*Substitua pelo ARN que você obteve ao criar a configuração. Se você não tiver salvado o ARN ao criar a configuração, poderá usar o comando `list-configurations` para listar todas as configurações em sua conta. A configuração que você deseja ver na lista aparecerá na resposta. O ARN da configuração também aparece nessa lista.

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

1. Veja a seguir um exemplo de uma resposta bem-sucedida após a execução desse 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
       }
   }
   ```

# Excluir configuração
<a name="msk-configuration-operations-delete"></a>

O procedimento a seguir mostra como excluir uma configuração que não esteja anexada a um cluster. Não é possível excluir uma configuração anexada a um cluster.

1. Para executar esse exemplo, *configuration-arn* substitua pelo ARN obtido ao criar a configuração. Se você não tiver salvado o ARN ao criar a configuração, poderá usar o comando `list-configurations` para listar todas as configurações em sua conta. A configuração que você deseja ver na lista aparecerá na resposta. O ARN da configuração também aparece nessa lista.

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

1. Veja a seguir um exemplo de uma resposta bem-sucedida após a execução desse comando.

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

# Obter metadados de configuração
<a name="msk-configuration-operations-describe"></a>

O procedimento a seguir mostra como descrever uma configuração do Amazon MSK para obter metadados sobre ela.

1. O seguinte comando retornará metadados sobre a configuração. Para obter uma descrição detalhada da configuração, execute o `describe-configuration-revision`.

   Para executar esse exemplo, *configuration-arn* substitua pelo ARN obtido ao criar a configuração. Se você não tiver salvado o ARN ao criar a configuração, poderá usar o comando `list-configurations` para listar todas as configurações em sua conta. A configuração que você deseja ver na lista aparecerá na resposta. O ARN da configuração também aparece nessa lista.

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

1. Veja a seguir um exemplo de uma resposta bem-sucedida após a execução desse 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"
   }
   ```

# Obter detalhes sobre uma revisão de configuração
<a name="msk-configuration-operations-describe-revision"></a>

Este processo fornece uma descrição detalhada da revisão da configuração do Amazon MSK.

Se você usar o comando `describe-configuration` para descrever uma configuração do MSK, verá os metadados da configuração. Para obter uma descrição da configuração, use o comando `describe-configuration-revision`.
+ Execute o comando a seguir e *configuration-arn* substitua pelo ARN obtido ao criar a configuração. Se você não tiver salvado o ARN ao criar a configuração, poderá usar o comando `list-configurations` para listar todas as configurações em sua conta. A configuração que você deseja ver na lista aparecerá na resposta. O ARN da configuração também aparece nessa lista.

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

  Veja a seguir um exemplo de uma resposta bem-sucedida após a execução desse 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"
  }
  ```

  O valor de `ServerProperties` é codificado em base64. Se você usar um decodificador em base64 (por exemplo, https://www.base64decode.org/) para decodificá-lo manualmente, obterá o conteúdo do arquivo de configuração original usado para criar a configuração personalizada. Nesse caso, você obtém o seguinte:

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

# Listar as configurações em sua conta para a região atual
<a name="msk-configuration-operations-list"></a>

Esse processo descreve como listar todas as configurações do Amazon MSK em sua conta para a região atual AWS .
+ Execute o comando a seguir.

  ```
  aws kafka list-configurations
  ```

  Veja a seguir um exemplo de uma resposta bem-sucedida após a execução desse 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 das configurações do Amazon MSK
<a name="msk-configuration-states"></a>

Uma configuração do Amazon MSK pode estar em um dos seguintes estados. Para realizar uma operação em uma configuração, a configuração deve estar no estado `ACTIVE` ou `DELETE_FAILED`:
+ `ACTIVE`
+ `DELETING`
+ `DELETE_FAILED`