一、安装

kafka可以通过官网下载:https://kafka.apache.org/downloads

kafka根据Scala版本不同,又分为多个版本,我不需要使用Scala,所以就下载官方推荐版本kafka_2.12-2.4.0.tgz。

使用tar -xzvf kafka_2.12-2.4.0.tgz 解压

 为了使用方便,可以创建软链接kafka0

 

二、Zookeeper配置

当前下载的kafka程序里自带Zookeeper,可以直接使用其自带的Zookeeper建立集群,也可以单独使用Zookeeper安装文件建立集群。

1. 单独使用Zookeeper安装文件建立集群

Zookeeper的安装及配置可以参考另一篇博客,里面有详细介绍

ZooKeeper的安装和配置过程

https://www.cnblogs.com/zhaoshizi/p/12105143.html

2. 直接使用其自带的Zookeeper建立集群

kafka自带的Zookeeper程序脚本与配置文件名与原生Zookeeper稍有不同。

kafka自带的Zookeeper程序使用bin/zookeeper-server-start.sh,以及bin/zookeeper-server-stop.sh来启动和停止Zookeeper。

而Zookeeper的配制文件是config/zookeeper.properties,可以修改其中的参数

(1) 启动Zookeeper

bin/zookeeper-server-start.sh -daemon config/zookeeper.properties

加-daemon参数,可以在后台启动Zookeeper,输出的信息在保存在执行目录的logs/zookeeper.out文件中。

 

对于小内存的服务器,启动时有可能会出现如下错误

os::commit_memory(0x00000000e0000000, 536870912, 0) failed; error='Not enough space' (errno=12)

 可以通过修改bin/zookeeper-server-start.sh中的参数,来减少内存的使用,将下图中的-Xmx512M -Xms512M改小。

(2)关闭Zookeeper

bin/zookeeper-server-stop.sh -daemon config/zookeeper.properties

 

三、kafka配置

kafka的配置文件在config/server.properties文件中,主要修改参数如下,更具体的参数说明以后再整理下。

broker.id是kafka broker的编号,集群里每个broker的id需不同。我是从0开始。

listeners是监听地址,需要提供外网服务的话,要设置本地的IP地址

 

log.dirs是日志目录,需要设置

设置Zookeeper集群地址,我是在同一个服务器上搭建了kafka和Zookeeper,所以填的本地地址

num.partitions 为新建Topic的默认Partition数量,partition数量提升,一定程度上可以提升并发性

内部topic配置

内部__consumer_offsets和__transaction_state两个topic,分组元数据的复制因子,为了保证可用性,在生产上建议设置大于1。

default.replication.factor为kafka保存消息的副本数,如果一个副本失效了,另一个还可以继续提供服务,是在自动创建topic时的默认副本数,可以设置为3

因为要创建kafka集群,所以kafka的所有文件都复制两份,配置文件做相应的修改,尤其是brokerid、IP地址和日志目录。分别创建软链接kafka1和kafka2。

 

四、启动及停止kafka

1. 启动kafka

bin/kafka-server-start.sh -daemon config/server.properties

 -daemon 参数会将任务转入后台运行,输出日志信息将写入日志文件,日志文件在执行命令的目录下的logs目录中kafkaServer.out,结尾输同started说明启动成功。

 

 

 也可以用jps命令,看有没有kafka的进程

 

2. 停止kafka

bin/kafka-server-stop.sh config/server.properties

 

五、测试

kafka和Zookeeper已启动完成

1. 创建topic

bin/kafka-topics.sh --create --zookeeper 192.168.202.128:2181 --replication-factor 3 --partitions 3 --topic test

2. 查看主题

bin/kafka-topics.sh --list --zookeeper 192.168.202.128:2181

3. 发送消息

bin/kafka-console-producer.sh --broker-list 192.168.202.128:9094 --topic test

  4. 接收消息

bin/kafka-console-consumer.sh --bootstrap-server 192.168.202.128:9092 --topic test --from-beginning

5. 查看特定主题的详细信息

bin/kafka-topics.sh --zookeeper localhost:2181 --describe  --topic test

从中可以看到,test主题分了三个区,复制因子是3。

6. 删除主题

bin/kafka-topics.sh --zookeeper localhost:2181 --delete  --topic test
posted on 2020-01-06 23:21  zhaoshizi  阅读(68688)  评论(6编辑  收藏  举报