Mac-Kafka安装

安装kafka

brew install kafka

设置单机版本,修改监听端口

vim /usr/local/etc/kafka/server.properties

//修改
listeners=PLAINTEXT://localhost:9092

启动服务

brew services start zookeeper
brew services start kafka

Broker配置

常用配置

zookeeper.connect

用于保存broker元数据的zookeeper地址是通过zookeeper.connect来制定的,最好在配置文件中制定一组zookeeper服务器,防止zookeeper服务器宕机。

auto.create.topics.enable

在默认情况下,kafka会在一下几种情况下自动创建topic

  • 当一个生产者开始往主题写入消息时
  • 当一个消费者开始从主题读取消息时
  • 当任意一个客户端向主题发送元数据请求时

然而,通常情况下一个主题往往不会先被创建,所以需要将auto.create.topics.enable设置为false。

主题的默认配置

num.partitions:设置topic将包含多少分区。该参数默认为1.注意:我们可以增加topic的分区,但是不能减少分区的个数。如果新创建的topic分区的分区数小于num.partitions,则需要手动设置。

如何选定分区数量:

  • 主题需要达到多大的吞吐量
  • 单个分区消费数据的速度
  • 生产者向单个分区写入的吞吐量
  • 单个broker对分区的个数是有限制的,分区越多,占用的内存也越多。

log.retention.ms:根据时间来决定数据被保存多久,参数默认值为168小时。类似还有log.retention. minutes,如果两个都设置了,kafka默认设置最小值。

log.retention.bytes:通过保留消息字节数来判断消息是否过期。比如,设置1G,如果有8个分区,则该主题保留8G消息。

创建一个topic

./kafka-topics.sh --bootstrap-server localhost:9092 --create --topic test --partitions 1 --replication-factor 1