天天看点

Linux环境中Kafka服务安装与配置

作者:JasonTang

简介:Apache Kafka是一个开源消息系统,是由Apache软件基金会开发的一个开源消息系统项目。Kafka是一个分布式消息队列。Kafka对消息保存时根据Topic进行归类,发送消息者称为Producer,消息接受者称为Consumer,此外kafka集群有多个kafka实例组成,每个实例(server)称为broker。无论是kafka集群,还是consumer都依赖于zookeeper集群保存一些meta信息,来保证系统可用性。能够很好地进行离线和在线应用。分布式消息传递基于可靠的消息队列,在客户端应用和消息系统之间异步传递消息。有两种主要的消息传递模式:点对点传递模式、发布-订阅模式。大部分的消息系统选用发布-订阅模式。Kafka就是一种发布-订阅模式。

在发布-订阅消息系统中,消息被持久化到一个topic中。与点对点消息系统不同的是,消费者可以订阅一个或多个topic,消费者可以消费该topic中所有的数据,同一条数据可以被多个消费者消费,数据被消费后不会立马删除。在发布-订阅消息系统中,消息的生产者称为发布者,消费者称为订阅者。

JMS中定义了两种消息模型:点对点(point to point, queue)和发布/订阅(publish/subscribe,topic)。主要区别就是是否能重复消费。点对点(Queue)不可重复消费;而发布/订阅(Topic)可以重复消费。

本文主要介绍消息订阅服务器Kafka的安装与配置。详细内容请参考下文。

一、准备安装环境

1、登陆Linux系统

Linux环境中Kafka服务安装与配置

2、下载Kafka及其依赖包JDK&Zookeeper

Linux环境中Kafka服务安装与配置

3、上传之前下载好的安装包到 /datalake 目录

Linux环境中Kafka服务安装与配置

4、切换到/datalake目录并批量解压这几个安装包

执行指令# ls * | xargs -n1 tar xzvf批量解压相应的软件包

Linux环境中Kafka服务安装与配置

5、将解压的软件移动到 /usr/local对应目录

执行指令# mv jdk1.8.0_202 /usr/local/jdk迁移JDK

Linux环境中Kafka服务安装与配置

执行指令# mv kafka_2.11-2.1.0 /usr/local/kafka迁移Kafka

Linux环境中Kafka服务安装与配置

执行指令# mv zookeeper-3.4.5 /usr/local/zk迁移Zookeeper

Linux环境中Kafka服务安装与配置

二、安装并配置Kafka服务器

1、配置 Zookeeper

首先,先备份 Zookeeper 的默认配置文件

Linux环境中Kafka服务安装与配置

然后,修改配置文件zoo.cfg, 将 dataDir 选项配置为

dataDir=/usr/local/zk/data

Linux环境中Kafka服务安装与配置

2、配置 Kafka

执行指令# vim /usr/local/kafka/config/server.properties将 log.dirs 参数修改为log.dirs=/usr/local/kafka/logs

Linux环境中Kafka服务安装与配置

3、配置环境变量

执行指令# vim /etc/profile添加如下内容

export JAVA_HOME=/usr/local/jdk

export ZK_HOME=/usr/local/zk

export KAFKA_HOME=/usr/local/kafka

export PATH=$PATH:$JAVA_HOME/bin:$ZK_HOME/bin:$KAFKA_HOME/bin

执行指令# source /etc/profile是环境变量生效

Linux环境中Kafka服务安装与配置

三、启动Kafka服务器

1、执行指令# ./zkServer.sh start启动Zookeeper

Linux环境中Kafka服务安装与配置

2、启动 Kafka

执行指令# ./kafka-server-start.sh /usr/local/kafka/config/server.properties

Linux环境中Kafka服务安装与配置

3、打开另一个Shell窗口,创建topic

执行指令# kafka-topics.sh --zookeeper 127.0.0.1:2181 --replication-factor 1 --partitions 1 --create --topic test

Linux环境中Kafka服务安装与配置

4、再开一个 Shell 窗口,启动生产者producer

执行指令# kafka-console-producer.sh --broker-list 127.0.0.1:9092 --topic test

Linux环境中Kafka服务安装与配置

5、再打开另一个 Shell 窗口,启动消费者consumer

执行指令# kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --topic test

Linux环境中Kafka服务安装与配置

四、测试Kafka消息发布-订阅模式

说明:从生产者启动页面,发送数据,消费者能正常接收数据。

1、生产者producer界面

Linux环境中Kafka服务安装与配置

2、消费者consumer界面

Linux环境中Kafka服务安装与配置

备注:生产者发送的消息(无论是英文还是中文),消费者都可以及时看到。