Kafka入门系列01

0x00 介绍

是一个分布式消息队列。
官网地址:https://kafka.apache.org/intro

0x01 安装

1.1 安装ZooKeeper

需要先安装ZooKeeper,官网地址:https://zookeeper.apache.org/
ZooKeeper下载地址:https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.6.3/apache-zookeeper-3.6.3-bin.tar.gz

  • 解压:
tar -xvf apache-zookeeper-3.6.3-bin.tar.gz  -C /opt
  • 修改配置文件
    将数据保存下来,不放到临时目录,其中ZK_HOME是ZooKeeper的安装主目录
cd  $ZK_HOME/conf
cp zoo_sample.cfg  zoo.cfg
vim zoo.cfg
# 修改: dataDir=/opt/temp/zookeeper
  • 启动ZooKeeper
./zkServer.sh start
启动成功
  • 关闭ZooKeeper
./zkServer.sh stop

1.2 安装Kafka

Kafka各个版本下载地址:https://kafka.apache.org/downloads
我们选择https://www.apache.org/dyn/closer.cgi?path=/kafka/2.8.0/kafka_2.13-2.8.0.tgz

  • 解压
tar -xvf kafka_2.13-2.8.0.tgz  -C /opt
  • 配置环境变量(可选)
    为了方便使用可以配置环境变量
export KAFKA_HOME=/opt/kafka_2.13-2.8.0

1.3 单节点单broker部署

  • 修改配置文件
    $KAFKA_HOME/config/server.properties
    内容如下:
broker.id=0
listeners=PLAINTEXT://:9092
host.name=localhost
log.dirs=/opt/temp/kafka-logs
zookeeper.connect=localhost:2181   
  • 启动Kafka
export KAFKA_HOME=/opt/kafka_2.13-2.8.0
cd $KAFKA_HOME/bin
./kafka-server-start.sh $KAFKA_HOME/config/server.properties
//后台进程启动
./kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties
启动
  • 创建Topic
    副本系数为1,topic名称为hello_topic1,其中9092端口是在config/server.properties中配置listeners的那个端口
./kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic hello_topic1
  • 查看所有Topic
./kafka-topics.sh --list --zookeeper localhost:2181
showlist
  • 查看单独某一个Topic
./kafka-topics.sh --describe --topic hello_topic1 --bootstrap-server localhost:9092
describe
  • 生产消息
    9092端口是在config/server.properties中配置listeners的那个端口,可以把这个消息存放的地址
./kafka-console-producer.sh --broker-list localhost:9092 --topic hello_topic1
sendMessage
  • 消费消息
    --from-beginning表示从头到尾开始消费,不加的话是不会消费启动之前放到broker中的记录
./kafka-console-consumer.sh --bootstrap-server localhost:2181 --topic hello_topic1 --from-beginning
image.png

1.4 单节点多broker部署

  • 配置文件
    一个server.properties就相当于一个broker
cd $KAFKA_HOME/config/
cp server.properties server-1.properties
cp server.properties server-2.properties
cp server.properties server-3.properties

各个配置文件的内容如下:
server-1.properties内容如下:

log.dirs=/opt/temp/kafka-logs-1
listeners=PLAINTEXT://:9093
broker.id=1
zookeeper.connect=localhost:2181

server-2.properties内容如下:

log.dirs=/opt/temp/kafka-logs-1
listeners=PLAINTEXT://:9094
broker.id=2
zookeeper.connect=localhost:2181

server-3.properties内容如下:

log.dirs=/opt/temp/kafka-logs-1
listeners=PLAINTEXT://:9095
broker.id=3
zookeeper.connect=localhost:2181
  • 启动Kafka
export KAFKA_HOME=/opt/kafka_2.13-2.8.0
cd $KAFKA_HOME/bin
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 &
  • 创建Topic
./kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 3 --partitions 1 --topic hello_topic2
  • 生产消息
./kafka-console-producer.sh --broker-list localhost:9093,localhost:9094,localhost:9095 --topic hello_topic2
  • 消费消息
./kafka-console-consumer.sh --bootstrap-server  localhost:2181 --topic hello_topic2 --from-beginning
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容