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.jsoncom 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.jsonno 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.
}