Kafka简介
原本的kafka只是一个处理消息队列的技术,但随着功能不断增加,不断综合,成为了一个分布式的流媒体平台
- Kafka是一个分布式的流媒体平台。
- 应用:消息系统、日志收集、用户行为追踪、流式处理。
- Kafka特点
- 高吞吐量、消息持久化、高可靠性、高扩展性。
-他把数据存到硬盘里,同时保持高性能(读取性能的高度决定于硬盘的读取方式:顺序读取,高性能);分布式集群部署,因此可靠,
- 高吞吐量、消息持久化、高可靠性、高扩展性。
- Kafka术语
- Broker(kafka集群中的每一个服务器)、Zookeeper(管理集群,kafka内置中有,可以单独下载一个管理器)
消息队列的方式有两种:一种是点对点,另一种是发布订阅方式,生产者将消息放到某个位置(指定的topic上),多个消费者可以同时对其进行读取,或单个读取。 - Topic(文件夹,消息的位置)、Partition(对topic进行分区)、Offset(每个分区从前往后一次追加数据,消息在分区内存放的索引)
- Leader Replica(主副本,对数据做备份,当从分区获取数据时,主副本可以做相应,但随从副本不会) 、Follower Replica(随从副本,当主副本出现问题时,随从副本中的某一个会成为主副本)
- Broker(kafka集群中的每一个服务器)、Zookeeper(管理集群,kafka内置中有,可以单独下载一个管理器)
官方网站:kafka官方网站
下载安装kafka
kafka不分系统,windows和linux都有相应的命令,在一个下载包里
下载步骤解压缩即可
配置kafka
kafka常用命令介绍
http://kafka.apache.org/documentation/
启动zookeeper
指定某个配置文件去启动,注意文件的路径位置。
启动kafka
cd 到对应目录下,用配置文件,启动kafka-server-start.bat
启动后,data文件夹下就有数据了
使用kafka,要启动命令行,使用kafka的命令工具
进入到包含命令行的工具下,创建主题(topic,要把消息放到主题上,主题代表一个位置,也代表一个消息的类别)
利用工具:kafka-topics.bat,创建主题,指定在哪个服务器上创建主题;创建多少个副本,几个分区;创建主题的名字叫test
kafka默认的端口是9092;
查看kafka所有的主题:
往主题上发送消息,是生产者发送消息
kafka-console-producer.bat --broker-list localhost:9092 --topic test
通过消费者窗口(再创建一个窗口,注意要进到kafka相应的目录底下)
kafka-console-consumer.bat --bootstrp-server loclahost:9092 --topic test – from beginning
消费者从消息队列中读取数据,从头开始读
我们一般利用java代码,去使用kafka