kafka安装

官网

下载

1
2
3
4
5
6
7
8
9
10
11
12
13
##前置
java、zookeeper


wget http://mirror.bit.edu.cn/apache/kafka/2.1.0/kafka_2.12-2.1.0.tgz

or

curl -L -O http://mirror.bit.edu.cn/apache/kafka/2.1.0/kafka_2.12-2.1.0.tgz

tar -zxvf kafka_2.12-2.1.0.tgz

cd kafka_2.12-2.1.0/bin

{———-}

启动

1
2
3
4
5
6
7
8
9
10
11
12
13
14

./kafka-server-start.sh -daemon

./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test



#test 主题上发布消息
./kafka-console-producer.sh --broker-list localhost:9092 --topic test



#test 主题上接收消息
./kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning

broker配置

1、broker.id

  • 集群唯一 整数

2、port

  • 端口

3、zookeeper.connect

  • zk连接地址

4、log.dirs

  • log地址

5、num.recovery.threads.pre.data.dir

  • 配置线程处理日志片段
    • 服务器正常启动、用于打开每个分区的日志片段
    • 服务器崩溃后重启、用于检查和截短每个分区的日志片段
    • 服务器正常关闭、用于关闭日志片段

默认每个日志目录只用一个线程、如果配置了num.recovery.threads.pre.data.dir=8
那么如果有3个log.dir 那么就需要24个线程

6、auto.create.topics.enable

  • 默认情况下、kafka会在以下三种情况下自动创建主题
    • 当一个生产者开始往主题写入消息时
    • 当一个消费者开始从主题读取消息时
    • 当任意一个客户端向主题发送元数据请求时

如果已经显示的创建主题、那么这里可以配置为auto.create.topics.enable=false

topic默认配置

1、num.partitions

  • 选定分区数量

2、log.retention.ms

  • 根据时间保留数据和最后修改时间

3、log.retention.bytes

  • 根据字节大小和时间保留数据

4、log.segment.bytes

  • 使用时间戳获取偏移量

5、log.segment.ms

  • 基于时间的日志片段和磁盘性能的影响

6、message.max.bytes

  • 在服务端和客户端之间协调消息大小的配置