|NO.Z.00014|——————————|BigDataEnd|——|Hadoop&kafka.V14|——|kafka.v14|服务端参数配置|
一、服务端参数配置
### --- 服务端参数配置
~~~ $KAFKA_HOME/config/server.properties文件中的配置。
### --- zookeeper.connect
~~~ 该参数用于配置Kafka要连接的Zookeeper/集群的地址。
~~~ 它的值是一个字符串,使用逗号分隔Zookeeper的多个地址。Zookeeper的单个地址是
~~~ host:port 形式的,可以在最后添加Kafka在Zookeeper中的根节点路径。
~~~ # 在zookeeper中指定一个节点,在这个节点下,所有的子节点用于保存kafka的原数据
~~~ 若是有多个zookeeper,可以写入多个地址,地址之间使用逗号隔开
~~~ 可以写多个,但不允许写1个,zookeeper允许单点故障
~~~ 2到3个为好,最好是zookeeper集群过半的节点设置在其中
############################# Zookeeper #############################
zookeeper.connect=node2:2181,node3:2181,node4:2181/myKafka
~~~ # myKafka下所显示的原数据
~~~ 最好是指定一个名字,这样原数据就不会在其它地方放置了
~~~ 若是不设置的话,就会自动创建出来
~~~ 在业务比较多的话,就会比较混乱,所以专门指定一个节点,用于存放zookeeper的源数据
[root@hadoop ~]# vim $KAFKA_HOME/config/server.properties
############################# Zookeeper #############################
zookeeper.connect=localhost:2181/myKafka
~~~ # 查看zookeeper下的数据
[root@hadoop ~]# zkCli.sh
[zk: localhost:2181(CONNECTED) 1] ls /myKafka
[cluster, controller_epoch, controller, brokers, admin, isr_change_notification, consumers, log_dir_event_notification, latest_producer_id_block, config]
~~~ # 若是写入没有myKafka参数,
~~~ 会把原数据转移到根节点下,
~~~ 若是不配置,就会读取默认的根节点下的原数据
[root@hadoop ~]# vim $KAFKA_HOME/config/server.properties
############################# Zookeeper #############################
zookeeper.connect=localhost:2181
[zk: localhost:2181(CONNECTED) 0] ls /
[cluster, controller, controller_epoch, brokers, zookeeper, admin, isr_change_notification, myKafka, consumers, log_dir_event_notification, latest_producer_id_block, config]
二、 listeners
### --- listeners
~~~ 用于指定当前Broker向外发布服务的地址和端口。
~~~ 与advertised.listeners 配合,用于做内外网隔离。
[root@hadoop ~]# vim $KAFKA_HOME/config/server.properties
############################# Socket Server Settings #############################
#listeners=PLAINTEXT://:9092
### --- 内外网隔离配置:
listener.security.protocol.map
~~~ 监听器名称和安全协议的映射配置。
~~~ 比如,可以将内外网隔离,即使它们都使用SSL。
listener.security.protocol.map=INTERNAL:SSL,EXTERNAL:SSL
~~~ 每个监听器的名称只能在map中出现一次。
~~~ # inter.broker.listener.name
~~~ 用于配置broker之间通信使用的监听器名称,该名称必须在advertised.listeners列表中。
~~~ inter.broker.listener.name=EXTERNAL
~~~ # listeners
~~~ 用于配置broker监听的URI以及监听器名称列表,使用逗号隔开多个URI及监听器名称。
~~~ 如果监听器名称代表的不是安全协议,必须配置listener.security.protocol.map。
~~~ 每个监听器必须使用不同的网络端口。
~~~ # advertised.listeners
~~~ 需要将该地址发布到zookeeper供客户端使用,如果客户端使用的地址与listeners配置不同。
~~~ 可以在zookeeper的get /myKafka/brokers/ids/<broker.id> 中找到。
~~~ 在IaaS环境,该条目的网络接口得与broker绑定的网络接口不同。
~~~ 如果不设置此条目,就使用listeners的配置。跟listeners不同,该条目不能使用0.0.0.0网络端口。
~~~ advertised.listeners的地址必须是listeners中配置的或配置的一部分。
### --- 典型配置:
[root@hadoop ~]# vim $KAFKA_HOME/config/server.properties
############################# Socket Server Settings #############################
listener.security.protocol.map=INTERNAL:PLINTEXT,EXTERNAL:PLAINTEXT
listeners=INTERNAL:/192.168.1.111,EXTERNAL://192.168.1.122:9093
inter.broker.listener.name=EXTERNAL
# Hostname and port the broker will advertise to producers and consumers. If not set,
# it uses the value for "listeners" if configured. Otherwise, it will use the value
# returned from java.net.InetAddress.getCanonicalHostName().
#advertised.listeners=PLAINTEXT://your.host.name:9092
advertised.listeners=EXTERNAL://192.168.1.122:9093
三、broker.id
### --- broker.id
~~~ 该属性用于唯一标记一个Kafka的Broker,它的值是一个任意integer值。
~~~ 当Kafka以分布式集群运行的时候,尤为重要。
~~~ 最好该值跟该Broker所在的物理主机有关的,
~~~ 如主机名为host1.yanqi.com ,则broker.id=1 ,
~~~ 如果主机名为192.168.100.101 ,则broker.id=101 等等。
[root@hadoop ~]# vim $KAFKA_HOME/config/server.properties
############################# Server Basics #############################
# The id of the broker. This must be set to a unique integer for each broker.
broker.id=0
四、log.dir
### --- 通过该属性的值,指定Kafka在磁盘上保存消息的日志片段的目录。
~~~ 它是一组用逗号分隔的本地文件系统路径。
~~~ 如果指定了多个路径,那么broker 会根据“最少使用”原则,
~~~ 把同一个分区的日志片段保存到同一个路径下。
~~~ broker 会往拥有最少数目分区的路径新增分区,而不是往拥有最小磁盘空间的路径新增分区。
############################# Log Basics #############################
# A comma seperated list of directories under which to store log files
log.dirs=/opt/yanqi/servers/kafka/kafka-logs
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
bdv013-kafka
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通