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 ( deleteoucompact). | 
| 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.
}