kafka安装配置(集群)以及收发消息讲解

本文详细介绍了Kafka集群的安装配置步骤,包括启动Zookeeper和Kafka服务,创建与管理topics,以及producer和consumer的使用。同时,文章还解析了关键配置参数,如broker.id、listeners、log.dirs和zookeeper.connect,并展示了如何扩展到多台broker。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

kafka安装配置(集群)以及收发消息讲解

一、安装配置

1、下载解压

wget    http://mirror.bit.edu.cn/apache/kafka/0.10.2.0/kafka_2.10-0.10.2.0.tgz

tar   -zxvf   kafka_2.10-0.10.2.0.tgz

kafka下载tgz包直接解压无需其他安装过程,下面是启动的过程

 

2、启动、收发消息操作

进入上步解压好的目录下:cd   kafka_2.10-0.10.2.0

目录结构如下:

total 56

drwxr-xr-x 3 rootroot  4096 Feb 15 01:28 bin

drwxr-xr-x 2 rootroot  4096 Mar  7 20:36 config

drwxr-xr-x 2 rootroot  4096 Mar  7 18:55 libs

-rw-r--r-- 1 rootroot 28824 Feb 15 01:26 LICENSE

drwxr-xr-x 2 rootroot  4096 Mar  7 21:04 logs

-rw-r--r-- 1 rootroot   336 Feb 15 01:26 NOTICE

drwxr-xr-x 2 rootroot  4096 Feb 15 01:28 site-docs

 

第一步:首先启动zookeeper服务:(kafka是由zookeeper来管理其一些属性的)

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

 

第二步:启动kafka服务,也就是broker服务

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

 

第三步:创建topic

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

注意:上面是一行命令不是两行命令

 

这时候可以看到输出提示:Created topic "test".

如果你topic已经存在也会提示,信息如下:

Error while executing topic command : Topic'test' already exists.

[2017-03-07 21:36:35,062] ERRORorg.apache.kafka.common.errors.TopicExistsException: Topic 'test' alreadyexists.

 (kafka.admin.TopicCommand$)

 

另外你也可以执行下面的命令查看你创建的topic有哪些:

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

test

 

第四步:发送消息(producer

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

aaaaaaaaaaaa

bbbbbbbbbbb

 

第五步收消息:(consumer

bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning

aaaaaaaaaaaa

bbbbbbbbbbb

 

二、配置参数讲解

         在kafka解压的目录下面可以看到config文件,其中zookeeper、server、producer、consumer以及其他的属性配置都在这个文件下

配置broker的属性文件是:server.properties

这里先重点解释一下里面的参数意义:

1、其中broker.id=0是broker的id,一个集群所有id不能有相同的id。

 

2、listeners=PLAINTEXT://192.168.1.108:9092

   这个是SocketServer Settings的配置:监听的ip:port,就是producer发消息的socket地址

listeners=PLAINTEXT://192.168.1.108:9092

这里PLAINTEXT是协议,有时候你的ip写成hostname或者是localhost会早造成发消息不成功或者收不到消息,改成具体ip地址应该是最安全的方式。

 

3、log.dirs=/tmp/kafka-logs 是日志文件路径

 

4、zookeeper.connect=localhost:2181  是你的broker连接zookeeper的地址ip:port

这个四个配置项目相当重要,有时候你连接不上或者收发消息不成功的时候往往是ip地址造成的。

 

三、现在配置多个broker

cp  server.properties server1.properties

cp  server.properties server2.properties

修改server1.properties 

   broker.id=1

    listeners=PLAINTEXT://192.168.1.108:9093

   log.dir=/tmp/kafka-logs-1

 

server2.properties

   broker.id=2

    listeners=PLAINTEXT://192.168.1.108:9094

   log.dir=/tmp/kafka-logs-2

 

下面来演示一下:

先创建一个topic  现在我们创建一个具有三份副本、两个划分partitions的主题

bin/kafka-topics.sh --create --zookeeper  localhost:2181  --replication-factor  3  --partitions 2  --topic    chenxun

 

同时启动三个broker

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

bin/kafka-server-start.sh  config/server1.properties&

bin/kafka-server-start.sh  config/server2.properties&

 

这里用下面的命令查看一下topic的信息

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


看到没有:patitions是2   replication因子是3(topic里面的消息有3份) leader1这里1就是broker.id

 

现在我们发消息到topic:

bin/kafka-console-producer.sh  --broker-list  192.168.1.108:9092  --topic  chenxun


bin/kafka-console-consumer.sh  --zookeeper localhost:2181   --topic chenxun


接下来;我们kill掉leader 1

ps -elf|grep  server1.properties查看进程id

kill  -9  32474

 

执行下面的命令再次查看topic的信息的变化:其中leader是不是变了

bin/kafka-topics.sh --describe --zookeeperlocalhost:2181 --topic chenxun


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值