kafka入门之环境搭建(单机+集群)

本文介绍了如何一步步搭建Apache Kafka,从单机版到集群模式,包括配置修改、服务启动、创建与管理topic,以及简单的生产者和消费者操作。在集群搭建中,遇到内存不足的问题并给出了调整方案。最后,文章提到了Kafka在Zookeeper上注册的节点信息及其意义。
摘要由CSDN通过智能技术生成

安装:

 

版本:kafka_2.11-1.1.0

下载:wget https://archive.apache.org/dist/kafka/1.1.0/kafka_2.11‐1.1.0.tgz

zookeeper的版本:zookeeper-3.4.14

wget http://mirror.bit.edu.cn/apache/zookeeper/stable/zookeeper‐3.4.14.tar.gz

我已经安装好了,所以就不再介绍zookeeper怎么安装,后面我再单独写一篇关于zookeeper的博客,详细介绍安装和原理

kafka安装步骤:

1、解压 tar -zxvf kafka_2.11-1.1.0

2、vim config/server.properties(修改服务端配置文件)

官方给的基础配置其实就这三个

      重要配置如下: broker.id=0 集群的broker节点 

                                 log.dirs= 日志的位置

                                log.retention.hours=168 数据保存的时间(168小时==7天)

                                zookeeper.connect=localhost:2181 zk的连接地址,可配置成集群,用逗号分隔即可

3、启动: bin/kafka-server-start.sh -daemon  config/server.properties 

已经安装好了,可以去zk上面看一下,会发现zk注册了很多新的节点信息,文章结尾有大概标注节点的含义

用命令的方式来试一下消息生产和消费

创建topic: bin/kafka-topics.sh --create --zookeeper ip:2181 --replication-factor 1 --partitions 1 --topic test

查看topic: bin/kafka-topics.sh -list  --zookeeper ip:2181

删除topic:bin/kafka-topics.sh --delete --zookeeper  ip:2181 --topic test

生产者生产:bin/kafka-console-producer.sh --broker-list  ip:9092 --topic test

消费者消费: bin/kafka-console-consumer.sh --zookeeper ip:2181 --topic test

消费多个topic:bin/kafka-console-consumer.sh --bootstrap-server ip:9092 --whitelist "test|test2"

查询topic信息:bin/kafka-topics.sh --describe --zookeeper ip:2181

 集群:

报错内存不足,out of memory 

解决方法:修改kafka-server-start.sh,把默认启动内存大小从1G调成256M 128M

 

集群搭建好,创建一个topic,有三个分区,三个备份,查看具体信息如下:

Partition 表示对应的分区编号

leader 表示对当前分区,进行事物操作的节点

Replicas 表示有备份的节点(只要有备份都会显示,连接有问题都会展示)

Isr 表示存活的,正常同步备份的节点

测试数据发送:

创建topic:bin/kafka-topics.sh --create --zookeeper ip:2181 --replication-factor 3 --partitions 3 --topic test-cluster

生产消息(集群):bin/kafka-console-producer.sh --broker-list ip1:19092,ip2:19093,ip3:19094 --topic test-cluster

消费消息: bin/kafka-console-consumer.sh --zookeeper ip:2181 --topic test-cluster

消息正常发送接收,集群没问题

测试一下容错,任意kill一个节点,继续发送,虽然有WARN日志,但是消息正常发送接收

节点信息也发生变化:

创建命令其实不需要自己强记,kafka-topic.sh --help 即可查看

创建5分区2副本的topic:

 

 

 

创建3分区0副本的topic:  报错, Replication factor must be larger than 0.

集群搭建大概就是这样,zk上的注册信息大概看下 

controller:注册broker的leader

brokers: 存了一些ids,topic等

admin: 管理的一些监听

consumers:消费者

还有一些注册的监听事件信息

 关于kafka的一些原理性了解,可以看下我的另外一篇,也是一些个人理解。

https://blog.csdn.net/early_or_later/article/details/106307251

网上看到的一张比较好的图,kafka注册在zk上的节点可以参考下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值