大数据频道 频道

从程序安装到设置,Kafka的配置属性解析!

  【IT168 技术】Kafka是由Scala和Java编写的最流行的发布者 - 订阅者模型之一。它最初由LinkedIn开发,后来经过开源。Kafka是一种高吞吐量的分布式发布订阅消息系统,因可以处理重负载而出名。本文介绍了从安装到设置整个过程中Kafka的各种配置属性。

  安装

  想要安装Kafka,首先就必须要安装Java。其次,ZooKeeper管理着Kafka的集群状态,为Kafka执行很多任务,因而对于Kafka来说,Zookeeper也是关键一步。

  ZooKeeper安装程序

  •   下载Zookeeper

  •   解压文件。 在conf目录中,重命名文件zoo_sample.cfgas zoo.cfg。

  •   zoo.cfg文件保存ZooKeeper的配置,即ZooKeeper实例将侦听的端口,数据目录等。

  •   默认侦听端口是2181,您可以通过更改clientPort来更改此端口。

  •   默认数据目录是/ tmp / data。这个默认数据目录需要改动,否则Zookeeper的数据可能随时被删除。使用Zookeeper目录中的名称数据创建一个文件夹,并更改zoo.cfg中的dataDir。

  •   转到bin目录

  •   通过执行命令./zkServer.sh start来启动ZooKeeper。

  •   通过停止命令./zkServer.sh停止ZooKeeper。

  Kafka设置

  •   下载最新的Kafka稳定版本。

  •   解压此文件。 Kafka实例(Broker)配置保存在config目录中。

  •   转到配置目录。 打开文件server.properties。

  •   从listeners属性中删除评论,即listeners=PLAINTEXT://:9092. Kafka broker将在9092端口侦听。

  •   将log.dirs更改为/ kafka_home_directory / kafka-logs

  •   检查zookeeper.connect属性并根据需要进行更改。Kafka broker 将连接到ZooKeeper instance。

  •   转到Kafka主目录并执行命令./bin/kafka-server-start.sh config / server.properties。

  •   通过命令./bin/kafka-server-stop.sh停止Kafka broker。

  Kafka Broker属性

  对于初学者来说,Kafka broker的默认配置就已经足够了,但是对于生产级别的设置来说,就必须要详细的了解每个配置。

  •   broker.id:集群中broker实例的id

  •   zookeeper.connect:ZooKeeper地址(可以为ZooKeeper集群列出逗号分隔的多个地址)。 例如:localhost:2181,localhost:2182

  •   zookeeper.connection.timeout.ms:由于某种原因,broker无法连接,ZooKeeper的连接超时。

  Socket服务器属性

  •   socket.send.buffer.bytes:socket的发送缓冲区。

  •   socket.receive.buffer.bytes:socket的接受缓冲区。

  •   socket.request.max.bytes:服务器允许的最大请求大小, 这可以防止服务器内存不足。

  Flush 属性

  Kafka broker的每一条到达消息都会被写入段文件。这些数据不会直接被写入磁盘,在被写入之前会被缓冲。以下两个属性定义了何时将数据刷新到磁盘。Flush间隔过大可能导致Flush发生的同时出现latency spikes情况,间隔过小可能会导致过多的寻找。

  •   log.flush.interval.messages:到达的消息计数阈值将所有消息刷新到磁盘。

  •   log.flush.interval.ms:所有消息被刷新到磁盘的周期时间间隔。

  Log 保留

  如上所述,Kafka broker的每一条消息都会被写入段文件,以下属性则定义了这些文件何时会被删除。

  •   log.retention.hours:分段文件可以被删除的最小年龄。

  •   log.retention.bytes:日志基本规格大小的保留策略。除非其余段落在log.retention.bytes以下,否则段文件将在日志中被删除。

  •   log.segment.bytes:将在其后创建的新分段文件大小。

  •   log.retention.check.interval.ms:根据保留策略检查日志分段文件的间隔时间,以确定是否文件属性到达删除要求。 如果两个保留策略都已设置,则在满足任一条件时删除分段。

0
相关文章