kafka入门及安装部署
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
如果在不同的终端中运行上述命令,能够在生产者终端中键入消息并看到它们出现在消费者终端中。
所有命令行工具都有选项; 运行不带参数的命令将显示使用信息。
来源:CSDN
作者:ILY酱油王
链接:https://blog.csdn.net/weixin_39172079/article/details/104650327