[转帖]Kafka 核心技术与实战学习笔记(七)kafka集群参数配置(上)

kafka,核心技术,实战,学习,笔记,集群,参数,配置 · 浏览次数 : 0

小编点评

**1. Broker 端参数** ``` log.dirs: /home/kafka1,/home/kafka2,/home/kafka3 ``` **2. Zookeeper** ``` Zookeeper.connect(zk1:2181,zk2:2181,zk3:2181) ``` **3. 客户端程序或其他Broker与该Broker的配置** ``` listeners: - <protocolName,host,port> ``` **4. Topic 配置** ``` auto.create.topics.enable: false ``` **5. 数据存留配置** ``` log.retention.{hours|minutes|ms} ```

正文

一.Broker 端参数

Broke存储信息配置

  • log.dirs:非常重要,指定Broker需要使用的若干文件目录路径,没有默认值必须亲自指定。
  • log.dir:他只能表示单个路径,补充上一个参数用。

如何设置:

  •  只要设置log.dirs,不要设置log.dir
  • 线上环境一定要为log.dirs配置多个路径,具体格式为CSV格式,比如:/home/kafka1,/home/kafka2,/home/kafka3

最好保证这些目录挂载到不同的物理磁盘上:

  • 提升读写性能:多块磁盘同时读写数据有更高吞吐量
  • 能实现故障转移:Failover
  • kafka1.1以前:Broker使用的任何一块磁盘挂掉,整个Broker进程都会被关闭
  • 1.1之后:坏掉的磁盘的数据会自动转移到其他正常的磁盘上,而且Broker还能正常工作。

二.Zookeeoer的相关配置:

  •  Zookeeper是什么
  •      分布式协调框架,负责协调管理并保存kafka集群的所有元数据信息,比如集群中有哪些Broker运行,创建哪些Topic,每个Topic多个分区,以及分区的Leader副本在哪些机器上等信息。     

Zookeeper.connect

  • 这也是CSV格式的参数,比如zk1:2181,zk2:2181,zk3:2181  
  • 多个kafka使用同一套zookeeper集群,使用chroot,类似于别名。

三.客户端程序或者其他Broker与该Broker的配置:

  • listeners:监听器,告诉外部连接者要通过什么协议访问指定主机名和端口开放kafka的服务。  
  • advertised.listeners:和listeners相比多了个advertised。Advertised含义是公开的,因此这组 监听器是Broker对外公布的。

监听器的概念:

  • 他是由若干个逗号分隔的三元组,每个三元组格式为<协议名称,主机号,端口号>
  •  listener.security.protocol.map参数告诉这个协议底层使用了哪种安全协议
  •  这里我给出统一的建议:最好全部使用主机名,即 Broker 端和 Client 端应用配置中全部填写主机名。

四.Topic 配置

auto.create.topics.enable:是否允许自动创建Topic

  • 参数建议最好设置成false,避免创建名字稀奇古怪的Topic。

unclean.leader.election。enable

  • 能否让落户的副本竞选Leader。
  • 如果是false:坚决不让落后太多的副本竞选Leader,这样会导致分区不可用,因为没有Leader选出
  • 如果是true,那么kafka允许从慢的副本中选出一个Leader,这样会导致数据丢失,因为副本数据本身就不全,当成为Leader以后就会以他的为准。
  • 这个参数新版默认false;

auto.leader.rebalance.enable:是否允许定期选举Leader

  • 对生产环境影响较大
  • 换Leader,本身没有收益建议换成false;

五.数据存留配置

  log.retention.{hours|minutes|ms}

  • 控制一条消息数据保存多长时间,优先级是ms>minutes>hours
  • 通常情况下设置hours级别多一些,比如log.retention.hours=168表示7天后删除,自动删除7天前的数据。

log.retention.bytes:

  • 指定 Broker 为消息保存的总磁盘容量大小。

message.max.bytes:控制 Broker 能够接收的最大消息大小。

  • 默认的 1000012 太少了,还不到 1MB。实际场景中突破 1MB 的消息都是屡见不鲜的,因此在线上环境中设置一个比较大的值还是比较保险的做法。毕竟它只是一个标尺而已,仅仅衡量 Broker 能够处理的最大消息大小,即使设置大一点也不会耗费什么磁盘空间的。
文章知识点与官方知识档案匹配,可进一步学习相关知识
Java技能树首页概览121025 人正在系统学习中

与[转帖]Kafka 核心技术与实战学习笔记(七)kafka集群参数配置(上)相似的内容:

[转帖]Kafka 核心技术与实战学习笔记(七)kafka集群参数配置(上)

一.Broker 端参数 Broke存储信息配置 log.dirs:非常重要,指定Broker需要使用的若干文件目录路径,没有默认值必须亲自指定。log.dir:他只能表示单个路径,补充上一个参数用。 如何设置: 只要设置log.dirs,不要设置log.dir线上环境一定要为log.dirs配置多

[转帖]Kafka 核心技术与实战学习笔记(八)kafka集群参数配置(下)

一.Topic级别参数 Topic的优先级: 如果同时设置Topic级别参数和全局Broker参数,那么Topic级别优先 消息保存方面: retention.ms:规定Topic消息保存时长。默认是7天。一旦设置将覆盖掉Broker端的全局参数值。 retention.bytes:规定为该Topi

[转帖]Kafka 核心技术与实战学习笔记(六)kafka线上集群部署方案

一.操作系统-Linux Kafka是JVM系的大数据框架kafka由Scala语言和Java语言编写而成,编译之后的源代码就是普通的".class"文件 使用Linux kafka客户端底层使用Java的selector,selector在Linux上的实现机制是epoll,由于在windows上

[转帖]Kafka可靠性之HW与Leader Epoch

《深入理解Kafka:核心设计与实现原理》是基于2.0.0版本的书 在这本书中,终于看懂了笔者之前提过的几个问题 准备知识 1、leader里存着4个数据:leader_LEO、leader_HW、remote_LEO集合、remote_HW集合 2、follower里只保存自身的:follower

[转帖]【Kafka】Kafka配置参数详解

Kafka配置参数详解 Kafka得安装与基本命令Kafka配置参数kafka生产者配置参数kafka消费者配置参数 本篇文章只是做一个转载的作用以方便自己的阅读,文章主要转载于: Kafka核心配置参数与机制一文 版权声明:本文为CSDN博主「张行之」的原创文章,遵循CC 4.0 BY-SA版权协

[转帖]Kafka 基本概念大全

https://my.oschina.net/jiagoushi/blog/5600943 下面给出 Kafka 一些重要概念,让大家对 Kafka 有个整体的认识和感知,后面还会详细的解析每一个概念的作用以及更深入的原理 ・Producer:消息生产者,向 Kafka Broker 发消息的客户端

[转帖]Kafka 与RocketMQ 落盘机制比较

https://www.jianshu.com/p/fd50befccfdd 引言 前几期的评测中,我们对比了Kafka和RocketMQ的吞吐量和稳定性,本期我们要引入一个新的评测标准——软件可靠性。 何为“可靠性”? 先看下面这种情况:有A,B两辆越野汽车,在城市的周边地区均能很好应对泥泞的路况

[转帖]Kafka关键参数设置

https://www.cnblogs.com/wwcom123/p/11181680.html 生产环境中使用Kafka,参数调优非常重要,而Kafka参数众多,我们的java的Configuration代码中,经常设置的参数如下: Properties props = new Propertie

[转帖]kafka压测多维度分析实战

设置虚拟机不同的带宽来进行模拟压测 kafka数据压测 1、公司生产kafka集群硬盘:单台500G、共3台、日志保留7天。 1.1 版本:1.1.0 2、压测kafka。 2.1 使用kafka自带压测工具:bin/kafka-producer-perf-test.sh 命令参数解释: --num

[转帖]Kafka—配置SASL/PLAIN认证客户端及常用操作命令

介绍 SASL/PLAIN 是一种简单的 username/password安全认证机制,本文主要总结服务端开启该认证后,命令行客户端进行配置的操作流程。 配置 增加jaas.properties 在kafka的config目录下增加jaas.properties文件指定认证协议为SASL_PLAI