kafka入门及安装部署

旧城冷巷雨未停 提交于 2020-03-08 09:39:45

kafka安装包下载

下载 tar.gz 安装包
zookeeper下载地址:https://archive.apache.org/dist/zookeeper/zookeeper-3.4.10
kafka下载地址:http://archive.apache.org/dist/kafka/2.1.0/
安装文档及安装包下载:https://download.csdn.net/my/uploads/1/1

kafka简介及应用场景

简介

Kafka是一个流处理平台
1.可发布和订阅流数据,类似于消息队列或者企业级消息系统
2.以容错的方式存储流数据
3.可以在流数据产生时就进行处理

应用场景

1.异步处理
2.应用解耦
3.流量削峰
4.消息通讯
5.海量数据同步(日志)
6.任务调度
7.分布式事物

kafka安装部署

zookeeper伪分布式集群安装

kafka是强依赖zookeeper,所以安装kafka需要先安装zookeeper

解压zookeeper

首先,建立一个集群安装的目录,就叫zookeeper。其次,在这个目录的下面解压三份ZooKeeper,形成3个节点,每一个目录中的ZooKeeper就代表一个节点。

这样就形成了如下的安装目录结构:

/root/zookeeper

    |----zookeeper1/


    |----zookeeper2/


    |----zookeeper3/

解压zookeeper
在这里插入图片描述
之后把解压的zk复制出三份来,分别命名为zookeeper1,zookeeper2,zookeeper3,这三个目录中的zk就当成是集群中的3个节点。

为每个节点建立data目录、logs目录和myid文件

在3个节点目录中分别建立data目录、logs目录和myid文件

新建目录data:mkdir data

新建目录logs:mkdir logs

新建文件myid:touch data/myid

myid文件的内容是节点在集群中的编号,zookeeper1节点的编号就写成1,后边的zookeeper2的编号是2,zookeeper3的编号就是3。
在这里插入图片描述

为每个节点创建配置文件

在zookeeper1下新增配置文件:cp zoo_sample.cfg zoo.cfg

配置文件zoo.cfg的内容如下:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/root/zookeeper/zookeeper1/data
dataLogDir=/root/zookeeper/zookeeper1/logs
clientPort=2181
server.1=127.0.0.1:8880:7770
server.2=127.0.0.1:8881:7771
server.3=127.0.0.1:8882:7772

配置文件中的配置项的含义参见下面的介绍。

用同样的方法,在zookeeper2和zookeeper3的相应位置创建zoo.cfg,文件内容复制zookeeper1的zoo.cfg。只不过需要改动clientport、dataDir、dataLogDir三个配置项,zookeeper2的clientport改为2182,zookeeper3的clientport改为2183,而dataDir和dataLogDir都修改为相应的目录,就好了。
在这里插入图片描述

启动zookeeper集群

在这里插入图片描述

客户端接入集群

进入zookeeper集群中任意一个节点的bin目录下,启动一个客户端,接入已经启动好的zookeeper集群。这里的server可以填写集群中的任何一个节点的ip,端口号是对应ip的节点的配置文件中clientport的值。

在这里插入图片描述

真实分布式集群需要注意的地方

真正的分布式集群和伪分布式集群不一样的地方在于配置文件。

1、clientport端口各个节点一样就行。

2、server.1=127.0.0.1:8880:7770中的ip要修改成对应的server的ip,后边的两个端口号不需要不同,各个节点都一样就可以了。

其他地方伪分布式和真正分布式都是一样的。

单节点部署方式

下载解压

在这里插入图片描述

启动服务

bin/kafka-server-start.sh config/server.properties 1>/dev/null 2>&1 &
在这里插入图片描述

创建一个topic

创建一个名为“test”的topic,它有一个分区和一个副本:

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

运行list(列表)命令来查看这个topic:

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

在这里插入图片描述

发送消息

Kafka自带一个命令行客户端,它从文件或标准输入中获取输入,并将其作为message(消息)发送到Kafka集群。默认情况下,每行将作为单独的message发送。

运行 producer,然后在控制台输入一些消息以发送到服务器。

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

hello world

Hello
study.163.com

在这里插入图片描述

启动消费者

Kafka还有一个命令行使用者,它会将消息转储到标准输出。

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

hello world

hello
study.163.com

如果在不同的终端中运行上述命令,能够在生产者终端中键入消息并看到它们出现在消费者终端中。

所有命令行工具都有选项; 运行不带参数的命令将显示使用信息。

在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!