0%

Kafka搭建

介绍

Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。Producer即生产者,向Kafka集群发送消息,在发送消息之前,会对消息进行分类,即主题(Topic),通过对消息指定主题可以将消息分类,消费者可以只关注自己需要的Topic中的消息。Consumer,即消费者,消费者通过与kafka集群建立长连接的方式,不断地从集群中拉取消息,然后可以对这些消息进行处理。

环境配置

kafka是由scala和java编写的,所以我们要先安装配置scala

解压并配置环境变量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
tar -zxvf scala-2.11.8.tgz -C /app/servers/

# 环境配置
[root@master scala-2.11.8]# vi /etc/profile
#Scala Env
export SCALA_HOME=/app/servers/scala-2.11.8
export PATH=$PATH:$SCALA_HOME/bin
[root@master scala-2.11.8]# source /etc/profile

# 验证
[root@master servers]# scala -version
Scala code runner version 2.11.8 -- Copyright 2002-2016, LAMP/EPFL

# 这个需要在剩下两个子节点重复步骤

安装配置和kafka

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 解压
tar -zxvf kafka_2.11-2.1.0.tgz -C /app/servers/
# 重命名
mv kafka_2.11-2.1.0/ kafka-2.1.0

# 配置环境变量
vim /etc/profile
#Kafka Env
export KAFKA_HOME=/app/servers/kafka-2.1.0
export PATH=$PATH:$KAFKA/bin
source /etc/profile

# 修改server.properties文件,找到对应的位置,修改如下
[root@master servers]# vi kafka-2.1.0/config/server.properties
broker.id=0
listeners=PLAINTEXT:192.168.77.138//:9092
advertised.listeners=PLAINTEXT://192.168.77.138:9092
zookeeper.connect=192.168.77.138:2181,192.168.77.139:2181,192.168.77.140:2181

# 把master节点上修改好的kafka整个文件夹传到其余两个子节点
# 在另外两个节点分别把broker.id 修改为12
# listeners 在ip哪里分别修改成子节点对应的,既 PLAINTEXT://192.168.77.139:9092 和 PLAINTEXT://192.168.77.140:9092
# 其他的不需要修改

测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 在三个节点分别启动该kafka
[root@slave2 kafka-2.1.0]# nohup bin/kafka-server-start.sh /app/servers/kafka-2.1.0/config/server.properties &
# 执行之后 输入jps 有kafka就说明成功了

# 主节点上创建主题TestTopic
[root@master kafka-2.1.0]# bin/kafka-topics.sh --zookeeper 192.168.77.138:2181,192.168.77.139:2181,192.168.77.140:2181 --topic TestTopic --replication-factor 1 --partitions 1 --create

# 主节点启动一个生产者
[root@master kafka-2.1.0]# bin/kafka-console-producer.sh --broker-list 192.168.77.138:9092,192.168.77.139:9092,192.168.77.140:9092 --topic TestTopic
>

# 在其他两个节点分别创建消费者
[root@slave1 kafka-2.1.0]# bin/kafka-console-consumer.sh --bootstrap-server 192.168.77.139:9092 --topic TestTopic --from-beginning
[root@slave2 kafka-2.1.0]# bin/kafka-console-consumer.sh --bootstrap-server 192.168.77.140:9092 --topic TestTopic --from-beginning
# 之后在主节点输入一段话:
>hello world
# 然后在另外两个节点也就是消费者那里也出现了这句话,即消费到了该数据

image-20240321161900195
image-20240321161910332
kafka配置完成