运维管理

您所在的位置:网站首页 sentinel接入 运维管理

运维管理

2023-03-07 21:52| 来源: 网络整理| 查看: 265

原理配置查看集群层面单体层面创建集群层面单体层面删除集群层面单体层面可选参数常用的 动态参数 修改log.retention.msnum.io.threads 和 num.network.threads。与 SSL 相关的参数num.replica.fetchers

https://kafka.apache.org/documentation/#dynamicbrokerconfigs

在 Dynamic Update Mode 列 该列有 3 类值,分别是 read-only、per-broker 和 cluster-wideread-only。被标记为 read-only 的参数和原来的参数行为一样,只有重启 Broker,才能令修改生效per-broker。被标记为 per-broker 的参数属于动态参数,修改它之后,只会在对应的 Broker 上生效cluster-wide。被标记为 cluster-wide 的参数也属于动态参数,修改它之后,会在整个集群范围内生效,也就是说,对所有 Broker 都生效。你也可以为具体的 Broker 修改 cluster-wide 参数 优先级 per-broker 参数 > cluster-wide 参数 > static 参数 > Kafka 默认值

原理 Kafka 将动态 Broker 参数保存在 ZooKeeper 中 使用永久节点

changes 是用来实时监测动态参数变更的,不会保存参数值;topics 是用来保存 Kafka 主题级别参数的 虽然它们不属于动态 Broker 端参数,但其实它们也是能够动态变更的 users 和 clients 则是用于动态调整客户端配额(Quota)的 znode 节点 所谓配额,是指 Kafka 运维人员限制连入集群的客户端的吞吐量或者是限定它们使用的 CPU 资源。 /config/brokers 才是真正保存动态 Broker 参数的地方。该 znode 下有两大类子节点 第一类子节点就只有一个,它有个固定的名字叫 < default >,保存的是前面说过的 cluster-wide范围的动态参数另一类则以 broker.id 为名,保存的是特定 Broker 的 per-broker 范围参数。由于是 per-broker 范围,因此这类子节点可能存在多个

**

配置 kafka-configs 脚本 查看集群层面kafka-configs.sh --bootstrap-server kafka-host:port \--entity-type brokers --entity-default --describe

单体层面kafka-configs.sh --bootstrap-server kafka-host:port \--entity-type brokers --entity-name --describe

创建

集群层面kafka-configs.sh --bootstrap-server kafka-host:port \--entity-type brokers --entity-default \--alter --add-config unclean.leader.election.enable=true 如果要设置 cluster-wide 范围的动态参数,需要显式指定 entity-default

单体层面kafka-configs.sh --bootstrap-server kafka-host:port \--entity-type brokers --entity-name \--alter --add-config unclean.leader.election.enable=false

删除 删除动态参数要指定 **delete-config** 集群层面kafka-configs.sh --bootstrap-server kafka-host:port \--entity-type brokers --entity-default \--alter --delete-config unclean.leader.election.enable

单体层面kafka-configs.sh --bootstrap-server kafka-host:port \--entity-type brokers --entity-name \--alter --delete-config unclean.leader.election.enable

可选参数kafka-configs.batThis tool helps to manipulate and describe entity config for a topic, client, user or brokerOption Description------ -------------add-config Key Value pairs of configs to add. Square brackets can be used to group values which contain commas: 'k1=v1, k2=[v1,v2,v2],k3=v3'. The following is a list of valid configurations: For entity-type 'topics': cleanup.policy compression.type delete.retention.ms file.delete.delay.ms flush.messages flush.ms follower.replication.throttled. replicas index.interval.bytes leader.replication.throttled.replicas max.compaction.lag.ms max.message.bytes message.downconversion.enable message.format.version message.timestamp.difference.max.ms message.timestamp.type min.cleanable.dirty.ratio min.compaction.lag.ms min.insync.replicas preallocate retention.bytes retention.ms segment.bytes segment.index.bytes segment.jitter.ms segment.ms unclean.leader.election.enable For entity-type 'brokers': advertised.listeners background.threads compression.type follower.replication.throttled.rate leader.replication.throttled.rate listener.security.protocol.map listeners log.cleaner.backoff.ms log.cleaner.dedupe.buffer.size log.cleaner.delete.retention.ms log.cleaner.io.buffer.load.factor log.cleaner.io.buffer.size log.cleaner.io.max.bytes.per.second log.cleaner.max.compaction.lag.ms log.cleaner.min.cleanable.ratio log.cleaner.min.compaction.lag.ms log.cleaner.threads log.cleanup.policy log.flush.interval.messages log.flush.interval.ms log.index.interval.bytes log.index.size.max.bytes log.message.downconversion.enable log.message.timestamp.difference.max. ms log.message.timestamp.type log.preallocate log.retention.bytes log.retention.ms log.roll.jitter.ms log.roll.ms log.segment.bytes log.segment.delete.delay.ms max.connections max.connections.per.ip max.connections.per.ip.overrides message.max.bytes metric.reporters min.insync.replicas num.io.threads num.network.threads num.recovery.threads.per.data.dir num.replica.fetchers principal.builder.class replica.alter.log.dirs.io.max.bytes. per.second sasl.enabled.mechanisms sasl.jaas.config sasl.kerberos.kinit.cmd sasl.kerberos.min.time.before.relogin sasl.kerberos.principal.to.local.rules sasl.kerberos.service.name sasl.kerberos.ticket.renew.jitter sasl.kerberos.ticket.renew.window. factor sasl.login.refresh.buffer.seconds sasl.login.refresh.min.period.seconds sasl.login.refresh.window.factor sasl.login.refresh.window.jitter sasl.mechanism.inter.broker.protocol ssl.cipher.suites ssl.client.auth ssl.enabled.protocols ssl.endpoint.identification.algorithm ssl.key.password ssl.keymanager.algorithm ssl.keystore.location ssl.keystore.password ssl.keystore.type ssl.protocol ssl.provider ssl.secure.random.implementation ssl.trustmanager.algorithm ssl.truststore.location ssl.truststore.password ssl.truststore.type unclean.leader.election.enable For entity-type 'users': SCRAM-SHA-256 SCRAM-SHA-512 consumer_byte_rate producer_byte_rate request_percentage For entity-type 'clients': consumer_byte_rate producer_byte_rate request_percentage Entity types 'users' and 'clients' may be specified together to update config for clients of a specific user.--alter Alter the configuration for the entity.--bootstrap-server is required for describing and altering broker configs.--command-config passed to Admin Client. This is used only with --bootstrap-server option for describing and altering broker configs.--delete-config config keys to remove 'k1,k2'--describe List configs for the given entity.--entity-default Default entity name for clients/users/brokers (applies to corresponding entity type in command line)--entity-name Name of entity (topic name/client id/user principal name/broker id)--entity-type Type of entity (topics/clients/users/brokers/broker- loggers)--force Suppress console prompts--help Print usage information.--version Display Kafka version.--zookeeper REQUIRED: The connection string for the zookeeper connection in the form host:port. Multiple URLS can be given to allow fail-over.

常用的 动态参数 修改

log.retention.ms

修改日志留存时间应该算是一个比较高频的操作,毕竟,我们不可能完美地预估所有业务的消息留存时长。虽然该参数有对应的主题级别参数可以设置,但拥有在全局层面上动态变更的能力,依然是一个很好的功能亮点

num.io.threads 和 num.network.threads。

这是我们在前面提到的两组线程池。就我个人而言,我觉得这是动态 Broker 参数最实用的场景了。毕竟,在实际生产环境中,Broker 端请求处理能力经常要按需扩容。如果没有动态 Broker 参数,我们是无法做到这一点的

与 SSL 相关的参数

主要是 4 个参数(ssl.keystore.type、ssl.keystore.location、ssl.keystore.password 和 ssl.key.password)。允许动态实时调整它们之后,我们就能创建那些过期时间很短的 SSL 证书。每当我们调整时,Kafka 底层会重新配置 Socket 连接通道并更新 Keystore。新的连接会使用新的 Keystore,阶段性地调整这组参数,有利于增加安全性

num.replica.fetchers

这也是我认为的最实用的动态 Broker 参数之一。Follower 副本拉取速度慢,在线上 Kafka 环境中一直是一个老大难的问题。针对这个问题,常见的做法是增加该参数值,确保有充足的线程可以执行 Follower 副本向 Leader 副本的拉取。现在有了动态参数,你不需要再重启 Broker,就能立即在 Follower 端生效,因此我说这是很实用的应用场景



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3