Kafka教程——Kafka安装

环境:

JDK1.8
Kafka2.11
Centos7

zookeeper安装可以参考我另一篇博客

Kafka教程——Zookeeper安装

下载、安装Kafka

wget http://mirror.bit.edu.cn/apache/kafka/2.2.1/kafka_2.11-2.2.1.tgz

tar zxvf kafka_2.11-2.2.1.tgz

mv kafka_2.11-2.2.1 kafka

cd kafka

配置Kafka

Broker的server.properties文件说明

broker.id=0 #当前机器在集群中的唯一标识,和zookeeper的myid性质一样
listeners=PLAINTEXT://192.168.40.129:9092 #服务端监听端口,如果不是集群不要打开!!!
advertised.listeners=PLAINTEXT://your.host.name:9092 #broker发布给生产者消费者的监听host,如果不配置,默认使用listeners配置的信息
port=9092 #当前kafka对外提供服务的端口默认是9092
num.network.threads=3 #网络处理的线程数,一般不变
num.io.threads=8 #I/O处理线程数,一般比磁盘数大
log.dirs=/usr/local/kafka/logs #消息存放的目录,多个用,隔开
num.recovery.threads.per.data.dir=1 #用于处理每个目录的日志的线程数,默认是1,可以调大。
auto.create.topics.enable=true #是否默认创建主题,默认为true。实际环境中最好改为false,通过显示手动创建主题。
socket.send.buffer.bytes=102400 #发送缓冲区buffer大小
socket.receive.buffer.bytes=102400 #接收缓冲区大小
socket.request.max.bytes=104857600 #接收请求的最大数,不能超过JVM的堆内存大小
num.partitions=1 #默认的分区数,一个topic默认一个分区数。分区数越多,能提高并发性,但是也会导致该broker需要处理更多的文件。如果自动创建主题,则由该值决定自动创建的主题的分区数。
log.retention.hours=168 #消息的持久化时间,默认168小时,也就是1周
log.retention.minutes=30 #与上面的二选一,这里是持久化30分钟
log.retention.bytes=1073741824 #消息持久化大小,默认1G
log.segment.bytes=1073741824 #消息分块大小,默认1G,超过该大小后会重新创建新的segment file
compression.type=snappy #日志传输时候的压缩格式,包括lz4,snappy,gzip,建议打开
compressed.topics=topic1
zookeeper.connect= localhost:2181 #配置zookeeper连接,如果多个用,隔开

我们一般只需要修改这几个配置

broker.id #每台机器必须唯一
zookeeper.connect #根据实际情况配置,多个zookeeper必须全部加进去,用,隔开
listeners #在配置集群的时候必须设置,不然以后的操作会报找不到leader的错误

例如

broker.id=0
zookeeper.connect=192.168.123.123:2181,192.168.123.124:2181,192.168.123.125:2181
listeners=PLAINTEXT://192.168.123.123:9092

集群配置

集群配置只需要在每台机器上安装上面broker配置对应的server.properties文件,必须保证broker.id 唯一。

启动kafka服务

cd bin
./kafka-server-start.sh -daemon ../config/server.properties &
验证kafka是否启动成功

输入jps会出现Kafka
QuorumPeerMain 是zookeeper进程
Kafka是Kafka进程,如果启动的那个不成功,请检查配置文件(万能重启也可以试试)
在这里插入图片描述

创建topic
./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic ncqueue  #最后一个是name,不可重复
验证Topic是否创建成功
./kafka-topics.sh --list --zookeeper localhost:2181
Topic描述
./kafka-topics.sh --describe --zookeeper localhost:2181 --topic ncqueue
  • leader:负责处理消息的读和写,leader是从所有节点中随机选择的 replicas
  • 列出所有的副本节点,不管节点是否在服务中
  • isr:列出正在服务中的副本节点
发送消息
./kafka-console-producer.sh --broker-list localhost:9092 --topic ncqueue

执行完后,进入输入界面,输入数据即可。

接收消息
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic ncqueue
上面的命令只能获取以后的消息,如果要获取之前的消息,需要使用下面的语句:
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic ncqueue--from-beginning
注:如果报错可以将localhost换成本机IP
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaotian_dev

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值