Gerenciando Configurações de Cluster
Cada cluster Kafka no serviço Streaming com Apache Kafka tem um arquivo de configuração de cluster que contém todas as propriedades de configuração do servidor.
- Listando Configurações de Cluster
- Criando uma Configuração de Cluster
- Obtendo Detalhes da Configuração do Cluster
- Atualizando a Configuração do Cluster
- Excluindo a Configuração do Cluster
Também é necessário gerenciar configurações de cliente.
Propriedades Configuráveis do Broker
Com o Streaming com Apache Kafka, você pode personalizar a configuração do Kafka atualizando propriedades específicas do broker. O serviço simplifica a configuração do Kafka limitando as propriedades que podem ser atualizadas. Valide o arquivo de configuração do cluster em relação às propriedades suportadas para evitar comportamento inesperado.
Se forem fornecidas configurações inválidas ou incorretas, elas serão ignoradas e os valores padrão conforme definidos pelo Apache Kafka serão usados. Isso garante a estabilidade do cluster e impede que a configuração incorreta afete a disponibilidade do serviço.
Para obter as configurações padrão definidas pelo OCI Streaming com Apache Kafka, consulte Opções Padrão do Cluster.
Você pode atualizar as seguintes propriedades de broker:
Propriedade | Valor de amostra | Finalidade |
---|---|---|
client.quota.callback.static.storage.soft |
97% de totalStorageBytes |
Define um limite flexível na capacidade de armazenamento em disco do broker. |
client.quota.callback.static.storage.hard |
98% de totalStorageBytes
|
Define um limite rígido na capacidade de armazenamento em disco do broker. |
default.replication.factor |
1 | Define o fator de replicação padrão para novos tópicos. |
log.retention.hours |
168 | Define o tempo mínimo para reter segmentos de log. |
log.segment.bytes |
1,073,741,824 | Define o tamanho máximo de um único arquivo de segmento de log. |
log.cleanup.policy |
excluir | Define a estratégia de retenção de log (delete ou compact ). |
message.max.bytes |
1,048,588 | Define o tamanho máximo de uma mensagem que o broker aceita. |
min.insync.replicas |
1 | Define o número mínimo de réplicas de sincronização necessárias para que uma gravação seja confirmada. |
num.io.threads |
8 | Define o número de threads para operações de E/S de disco. |
num.replica.fetchers |
1 | Define o número de threads usados para replicar dados de outros brokers. |
unclean.leader.election.enable |
falso | Permite que réplicas fora de sincronia sejam eleitas como líderes. |
Definir cotas de disco do broker personalizado
Você pode definir cotas de disco do broker personalizado.
- Crie ou atualize o arquivo JSON de configuração de cluster com a configuração de cota necessária. Por exemplo, atualize o arquivo
kafka-config.json
com os seguintes detalhes sobre as cotas de disco:{ "properties": { "client.quota.callback.class": "io.strimzi.kafka.quotas.StaticQuotaCallback", "client.quota.callback.static.storage.soft": "1000000000", "client.quota.callback.static.storage.hard": "2000000000", "client.quota.callback.static.storage.check-interval": "30" } }
- Especifique o arquivo de configuração criado ou atualizado na etapa anterior como o arquivo de configuração do cluster. Por exemplo, especifique
--latest-config file://kafka-config.json
no comando da CLI create ou updatecluster-config
. - Atualize o cluster Kafka usando a API ou a CLI e especifique o arquivo de configuração novo ou atualizado
kafka-config.json
.
Propriedades do Corretor Não Configurável
O streaming com o Apache Kafka define algumas propriedades de broker como não editáveis e, se você configurar essas propriedades, elas serão ignoradas pelo serviço. Você deve validar o arquivo de configuração em relação às propriedades de suporte para evitar comportamento inesperado.
Não é possível atualizar as seguintes propriedades do broker:
advertised.
authorizer.
broker.
controller
cruise.control.metrics.reporter.bootstrap.
cruise.control.metrics.topic
host.name
inter.broker.listener.name
listener.
listeners.
log.dir
password.
port
process.roles
sasl.
security.
servers.node.id
ssl.
super.user
Por exemplo, o Streaming com Apache Kafka não suporta listeners de texto simples e, portanto, não há suporte para a configuração da definição "listeners": "PLAINTEXT://:9092"
no arquivo de configuração do cluster. Se você aplicar essa configuração para configurar um listener de texto sem formatação, a configuração será ignorada silenciosamente e o listener de texto sem formatação não será ativado e um aviso será registrado.
Veja a seguir um exemplo de configurações personalizadas inválidas. Aqui, todas as definições são ignoradas e os padrões aplicados.
{
"listeners": "PROTOCOL://:9092", // Ignored: Protocol not supported.
"num.network.threads": -5, // Ignored: Cannot be negative.
"num.io.threads": "eight", // Ignored: Should be an integer (like, 8).
"socket.send.buffer.bytes": 0, // Ignored: Value is too low.
"socket.receive.buffer.bytes": 9999999999, // Ignored: Value is too high.
"socket.request.max.bytes": -104857600, // Ignored: Negative value.
"log.retention.hours": "one hundred", // Ignored: Should be an integer.
"log.segment.bytes": 123.45, // Ignored: Should be an integer, not a decimal.
"log.retention.check.interval.ms": "five minutes",// Ignored: Should be an integer in ms.
"num.partitions": 0, // Ignored: Should be at least 1.
"default.replication.factor": 5, // Ignored: May fail if fewer than 5 brokers.
"min.insync.replicas": 10, // Ignored: Higher than replication factor.
"message.max.bytes": -1000012, // Ignored: Negative value.
"replica.fetch.max.bytes": "1MB", // Ignored: Should be an integer.
"offsets.topic.replication.factor": "three", // Ignored: Should be an integer.
"transaction.state.log.replication.factor": -1, // Ignored: Negative value.
"transaction.state.log.min.isr": 0 // Ignored: Should be at least 1.
}