搭建单机版的kafka

Kafka介绍

Kafka已经不仅仅是一个消息系统,它还是一个存储系统和流处理平台。因为其高可用,可水平扩展,可持久化,可处理流数据而被大数据领域广泛使用。

资源准备

linux centos7服务器
最近腾讯云在搞618活动
【腾讯云】618云聚惠,百款云产品限量抢购,1核2G云服务器首年95元
https://cloud.tencent.com/act/cps/redirect?redirect=1059&cps_key=4af64fef8b27cbf2ed77ea881690abbd&from=console

kafka下载
http://kafka.apache.org/downloads

百度网盘下载
链接:https://pan.baidu.com/s/1i-PviRc4im4Osa23EPRkqA
提取码:obr1

zookeeper下载(高版本的kafka安装包里面已经集成了zookeeper,本文还是采用外部的zookeeper)
https://zookeeper.apache.org/releases.html

百度网盘下载
链接:https://pan.baidu.com/s/1mOmiI0UXsPaeOBfv9tYFBg
提取码:b7zs

Zookeeper配置和启动

把安装包上传到opt目录并解压

  • tar zxvf kafka_2.12-2.5.0.tgz


    image.png
  • tar zxvf apache-zookeeper-3.6.1-bin.tar.gz


    image.png

Zookeeper配置和启动

  • 进入zookeeper的conf目录,将zoo-samples.cfg文件重命名为zoo.cfg:
    mv zoo-samples.cfg zoo.cfg

  • 编辑zoo.cfg文件:
    vi zoo.cfg

  • 我就直接贴出我的配置了

# zookeeper服务器心跳时间,单位为ms
tickTime=2000

# 投票选举新leader的初始化时间
initLimit=10

# leader与follower心跳检测最大容忍时间,响应超过tickTime * syncLimit, leader认为follower死掉, 从服务器列表中剔除该follower
syncLimit=5

# 数据目录
dataDir=/tmp/zookeeper/data

# 日志目录
dataLogDir=/tmp/zookeeper/log

# zookeeper对外服务端口
clientPort=2181

其中dataDir和dataLogDir分别配置数据目录和日志目录,这两个目录需要事先建好

  • 启动zookeeper
    ./bin/zkServer.sh start

  • 查看zookeeper状态
    ./bin/zkServer.sh status


    image.png

Kafka配置和启动

进入kafka的config目录,编辑server.properties文件

主要需要配置的有:

  • broker.id


    image.png

如果是集群的话,保证每个kafka实例的broker.id唯一

  • listeners


    image.png

配置kafka对外提供服务的地址

  • log.dirs


    image.png

kafka日志地址,需要先把目录建好

  • zookeeper.connect


    image.png

kafka注册的zookeeper地址

启动kafka

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

测试kafka启动没有


image.png

创建一个topic并制定分区和副本集

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

image.png

创建消费者

./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic-example

image.png

创建生产者

./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic topic-example

image.png

测试输入一些内容:


image.png

然后查看消费者是否有收到消息


image.png

ok,消费者也收到消息了!

查看topic详情

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

image.png

可以看到很多信息,比如分区数,分区副本数,ISR集合,是否leader等。。。

参考

https://weread.qq.com/web/reader/e9a32a0071848698e9a39b8k8f132430178f14e45fce0f7
https://www.cnblogs.com/alinainai/p/12951619.html
https://www.cnblogs.com/alinainai/p/12952227.html

你可能感兴趣的:(搭建单机版的kafka)