一、Kafka概述
1.Kafka是一个分布式流媒体平台,它有三个关键功能:
(1)发布和订阅记录流,类似于消息队列或企业消息传递系统;
(2)以容错的持久方式存储记录流;
(3)记录发送时处理流。
2.Kafka通常应用的两大类应用
(1)构建在系统或应用程序之间的可靠获取数据的实时流数据管道;
(2)构建转换或响应数据流的实施流应用程序。
3.Kafka中的角色
发送消息:Producer
接收消息:Consumer
后台系统向kafka集群发送消息,然后kafka集群向用户分发消息
4.为什么要用消息队列
(1)解耦:可以自由处理和设置接收及发送端的配置,
是一个接口的约束,可以避免出现一些问题
(2)拓展性:可以增加处理过程
(3)灵活:面对访问量增长到峰值时,不会因为超负荷请求而完全瘫痪
(4)可恢复:一部分组件失效了,不会影响整个系统,并可以恢复
(5)缓存:控制数据量经过系统的速度
(6)顺序保证:保证消息数据按照有序处理
(7)异步通信:
提供了异步处理的机制,允许用户把消息当到队列中但不立即处理
5.Kafka架构设计
kafka依赖于zookeeper,用zk保存元数据信息(保存kafka集群节点状态信息和消费者当前消费信息)。所以要先搭建zookeeper集群,在搭建kafka集群。
在kafka中,用来处理和存储生产者生成的消息的是broker,broker将生产者生成的消息以topic分类到不同分区partition,然后根据消费者订阅的主题对消费者发送消息。
二、Kafka的安装部署
1.在下载安装包,本人使用的是2.11-2.0.0,上次到linux,解压
2.在kafka路径下创建其日志文件夹
mkdir logs
3.进入config目录,进入server.properties文件修改配置信息
broker.id=0
delete.topic.enable=true
log.dirs=/root/hd/kafka/logs
zokeeper.connect=hd1-1:2181,hd1-2:2181,hd1-3:2181
保存并退出;
4.将修改好的kafka文件夹发送到其他集群机器,并修改server.properties中的broker.id为1,2,3...
scp -r /root/hd/kafka hd09-01:/root/hd/
5.启动zookeeper集群,再启动kafka集群
进入kafka目录下输入命令:
bin/kafka-server-start.sh config/server/properties
启动完成!!