1.概述

kafka是一个分布式的基于发布/订阅的消息队列,主要应用于大数据实时处理领域。它的主要特点包括:高吞吐量、低延迟,可扩展性、持久性、可靠性、容错性、高并发等。同时优势主要体现在以下几个方面:

(1)客户端语言丰富:支持Java、.Net、PHP、Ruby、Python、Go等多种语言;
(2)高性能:单机写入TPS约在100万条/秒,消息大小10个字节; 提供完全分布式架构,并有replica机制,拥有较高的可用性和可靠性,
理论上支持消息无限堆积;
(3)支持批量操作; 消费者采用Pull方式获取消息。消息有序,通过控制能够保证所有消息被消费且仅被消费一次;
(4)有优秀的第三方KafkaWeb管理界面Kafka-Manager;
(5)在日志领域比较成熟,被多家公司和多个开源项目使用。

作为一个优秀的开源消息中间件,Kafka被广泛应用到不同的项目中。本文将基于centos环境,安装并配置Kafka环境,同时将演示Kafka生产与消费消息。

2.centos中安装Kafka

2.1 下载kafka安装包
进入centos环境,为了方便演示,本文将直接下载kafka到root文件夹下,各位也可以根据需要下载到指定文件夹下。执行命令如下,我这里安装的是2.12版本,可根据需要自行选择版本。

wget https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.5.0/kafka_2.12-2.5.0.tgz

下载成功后结果如下图所示:

kafka的ip黑白名单 kafka添加白名单_kafka的ip黑白名单


2.2 解压缩包

上述安装包下载完成后,执行解压缩命令:

tar -zxvf kafka_2.12-2.5.0.tgz

解压后执行命令

ll

可观察到当前文件夹下会生成一个解压文件夹:

kafka的ip黑白名单 kafka添加白名单_zookeeper_02


2.3 修改配置文件

1.进入上述解压后的文件夹,执行命令如下:

cd kafka_2.12-2.5.0

利用ll命名可查看该文件夹下的所有目录:

kafka的ip黑白名单 kafka添加白名单_kafka_03


2.进入config文件夹下修改server.properties文件,执行命令如下:

vi config/server.properties

修改其中的配置为:

broker.id=1
log.dirs=/data/kafka/logs-1

至此,在centos环境中kafka的安装与配置就完成了。

3.生产者消费者演示

3.1 启动zookeeper
这里将以安装包中的脚本启动单节点的zookeeper,在上述解压后的文件夹下执行以下命令:

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

操作演示如下:

kafka的ip黑白名单 kafka添加白名单_linux_04


3.2 启动Kafka服务

在当前文件夹下利用kafka-server-start.sh来启动kafka,执行命令如下:

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

若界面出现以下指令,则表明启动成功:

kafka的ip黑白名单 kafka添加白名单_centos_05


3.3 创建topic

在当前文件夹下利用kafka-topics.sh来创建topic,执行命令如下:

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

成功结果如下:

kafka的ip黑白名单 kafka添加白名单_kafka_06


利用kafka-topics.sh中的list指令可以查看所有的主题,执行指令如下:

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

我这里创建了两个主题,可以看到已经显示了:

kafka的ip黑白名单 kafka添加白名单_linux_07


3.4 启动生产者生产消息

利用kafka-console-producer.sh来进行消息的生产,执行的指令如下:

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

执行成功后可以进行消息的发送:

kafka的ip黑白名单 kafka添加白名单_zookeeper_08


3.5 启动消费者消费消息

利用kafka-console-consumer.sh来进行消费消息,执行的指令如下:

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic demo --from-beginning

执行成功后可以获取生产者生产的消息:

kafka的ip黑白名单 kafka添加白名单_linux_09


3.6 注意事项

在上述启动kafka过程中,启动kafka窗口、生产者、消费者分别启动一个shell窗口,便于操作与观察。如下图所示:

kafka的ip黑白名单 kafka添加白名单_centos_10

4.小结

本文基于centos环境下载并安装了kafka,同时演示了生产者与消费者的案例,本文主要演示的单机版的案例,下一章将介绍基于centos环境下集群的搭建与配置。

5.参考文章