kafka分别在单节点单broker和单节点多(3)broker中的部署和生产、消费信息测试

LZ是在自己的笔记本电脑的虚拟机上部署的,只有一台机器,所以尝试了这两种方式下生产和消费信息的使用
学一门新技术肯定要看官方文档,上面有比较详细的说明,但是有的地方有点错误,还是在这里记录下,以供参考!官方文档链接
1、首先安装kafka
版本选用0.9.0.0,选择与scala2.11相配的版本
1)拷贝地址,然后wget下载,再解压,配置系统环境变量【vi ~/.bash_profile, source ~/. bash_profile】
2)$KAFKA_HOME/config中配置文件server.properties中的参数说明:
broker.id : 每个broker编号,篮子编号不能冲突,只有一台机器,默认从0开始
②监听端口默认在9092上面
hostname:当前机器,可以改为hadoop
log.dirs:用来存储kafka日志的目录
num.partition:分区的数量,默认为1
zookeeper.connection: zookeeper地址,改为hadoop:2181

2、单节点单broker
1) 先启动zookeeper
2) 启动kafka

kafka-server-start.sh $KAFKA_HOME/config/server.properties

注:如果只输入kafka-server-start.sh
会出现提示信息:USAGE: /home/hadoop/app/kafka_2.11-0.9.0.0/bin/kafka-server-start.sh [-daemon] server.properties [–override property=value]*
-daemon:表示是否以后台的形式运行
3)启动后用jps可以看到kafka,用jps -m可以看到kafka对应哪个server.properties文件
3) 创建topic:名称test_hi

kafka-topics.sh --create --zookeeper hadoop:2181 --replication-factor 1 --partitions 1 --topic test_hi

创建topic需要指定zookeeper地址,副本系数为1,一个分区一个副本系数
命令不熟悉可以输入kafka-topics.sh来查看

4) 查看目前有多少个topic,所有topic

kafka-topics.sh --list --zookeeper hadoop:2181

5)发送消息

kafka-console-producer.sh --broker-list hadoop:9092 --topic test_hi

bin目录下自带了一个控制台的生产者,要用broker-list,9092是前面配置的监听端口

6)消费消息
官网给的命令:

kafka-console-consumer.sh --bootstrap-server hadoop:9092 --topic test_hi --from-beginning

实际要用:

kafka-console-consumer.sh --zookeeper hadoop:2181 --topic test_hi --from-beginning

测试:可以开两个命令行终端,分别执行生产和消费消息命令,输入即可实时显示,在生产者终端中键入消息并看到它们出现在消费者终端中。默认情况下,每行作为单独一个消息发送

可以发现,消费终端关闭再开启,消息不丢失,这是因为用了--from-beginning,说明从头开始消费。如果不加这个参数,只从当前开始消费。

扫描二维码关注公众号,回复: 2592682 查看本文章

补充:
1)kafka-topics.sh --describe --zookeeper hadoop:2181
可以看到所有topic的详细信息
2)kafka-topics.sh --describe --zookeeper hadoop:2181 --topic test_hi
可以查看指定topic的信息

3、单节点多(3)broker
1) 先为每个broker配置一个server.properties,主要修改其中的broker.id、监听端口号和日志输出目录,因为我们是在一台机器上运行,参考官网
2) 启动zk
3) 启动kafka,现在以后台的方式启动,这样终端关了也没有关系

kafka-server-start.sh -daemon $KAFKA_HOME/config/server-1.properties &
kafka-server-start.sh -daemon $KAFKA_HOME/config/server-2.properties &
kafka-server-start.sh -daemon $KAFKA_HOME/config/server-3.properties &

4)启动后,用jps可以看到三个kafka,jps -m可以看到分别对应的配置文件
5)创建topic

kafka-topics.sh --create --zookeeper hadoop:2181 --replication-factor 3 --partitions 1 --topic my-topic

3个broker对应3个副本

6)查看topic及详细信息同2
其中,Leader指的是主broker的id是3,replicas表示3个broker列表,Isr表示当前存活的brokerId
7)发送消息

kafka-console-producer.sh --broker-list hadoop:9093,hadoop:9094,hadoop:9095 --topic my-topic

3个broker端口号与配置文件中一致

8)消费信息

kafka-console-consumer.sh --zookeeper hadoop:2181 --topic my-topic

现在可以启动三个终端输入命令,实时接受信息

慢走~

猜你喜欢

转载自blog.csdn.net/yulutian/article/details/80978765