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