什么是kafka?
kafka早期是由领英公司开发,后来'捐'给了Apache基金会。
kafka是Apache基金会的顶级项目,是一款消息队列产品,用于临时缓存输出的产品。
同类型产品有很多,比如RabbitMQ,RocketMQ,ActiveMQ等。
官网地址:
https://kafka.apache.org/
kafka单点部署:
- 1.下载kafka
[root@elk91 ~]# wget https://dlcdn.apache.org/kafka/3.9.0/kafka_2.13-3.9.0.tgz
- 2.解压软件包
[root@elk91 ~]# tar xf kafka_2.13-3.9.0.tgz -C /usr/local/
[root@elk91 ~]#
- 3.修改kakfa的配置文件
[root@elk91 ~]# vim /usr/local/kafka_2.13-3.9.0/config/server.properties
...
# kafka的唯一标识
broker.id=91
# 修改数据目录
log.dirs=/var/lib/kafka
# 指定kafka的元数据存储在zookeeper集群的路径(znodes)
zookeeper.connect=10.0.0.91:2181,10.0.0.92:2181,10.0.0.93:2181/oldboyedu-kafka-3.9.0
- 4.配置环境变量
[root@elk91 ~]# cat /etc/profile.d/kafka.sh
#!/bin/bash
export KAFKA_HOME=/usr/local/kafka_2.13-3.9.0
export PATH=$PATH:$KAFKA_HOME/bin
[root@elk91 ~]#
[root@elk91 ~]# source /etc/profile.d/kafka.sh
[root@elk91 ~]#
- 5.将kafka放在后台运行
[root@elk91 ~]# kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties
[root@elk91 ~]#
[root@elk91 ~]# ss -ntl | grep 9092
LISTEN 0 50 *:9092 *:*
[root@elk91 ~]#
- 6.在zookeeper集群查看数据是否写入成功
- kafka常见术语
- broker
表示每个kafka节点。 - producer(生产者)
往broker写入数据的一方。 - consumer(消费者)
从broker读取数据的一方。 - topic(主题)
指的是Producer和consumer从某个特定的topic读写数据。
换句话说,就是从kafka节点读写数据的逻辑单元。 - partitions(分区):
一个topic可以有多个partition,数据分布式存储在某个特定的parititon。 但是partition依旧是逻辑单元,但并是实际存储数据的载体。 - replica(副本):
每个分区最少有一个replica,是数据的实际载体。 当某个paritition的replica数量大于1时,就可以实现数据的高可用。 此时,副本区分Leader和follower。
- broker
至此kafaka单点部署完成!
kafka集群搭建
- 1.拷贝程序到其他节点
[root@elk91 ~]# scp -r /usr/local/kafka_2.13-3.9.0/ 10.0.0.92:/usr/local/
[root@elk91 ~]# scp -r /usr/local/kafka_2.13-3.9.0/ 10.0.0.93:/usr/local/
[root@elk91 ~]# scp /etc/profile.d/kafka.sh 10.0.0.92:/etc/profile.d/
[root@elk91 ~]# scp /etc/profile.d/kafka.sh 10.0.0.93:/etc/profile.d/
- 2.其他节点修改配置文件
[root@elk92 ~]# sed -i '/^broker.id/s#91#92#' /usr/local/kafka_2.13-3.9.0/config/server.properties
[root@elk92 ~]#
[root@elk92 ~]# grep ^broker.id /usr/local/kafka_2.13-3.9.0/config/server.properties
broker.id=92
[root@elk92 ~]#
[root@elk93 ~]# sed -i '/^broker.id/s#91#93#' /usr/local/kafka_2.13-3.9.0/config/server.properties
[root@elk93 ~]#
[root@elk93 ~]# grep ^broker.id /usr/local/kafka_2.13-3.9.0/config/server.properties
broker.id=93
[root@elk93 ~]#
- 3.其他节点启动kafka
[root@elk92 ~]# source /etc/profile.d/kafka.sh && kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties
[root@elk92 ~]#
[root@elk92 ~]# ss -ntl | grep 9092
LISTEN 0 50 *:9092 *:*
[root@elk92 ~]#
[root@elk93 ~]# source /etc/profile.d/kafka.sh && kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties
[root@elk93 ~]#
[root@elk93 ~]# ss -ntl | grep 9092
LISTEN 0 50 *:9092 *:*
[root@elk93 ~]#
Categories: