Kafka是一个高吞吐量,分布式的发布----订阅消息系统,它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka是一种快速、可扩展的、设计内在就是分布式的,分区的和可复制的提交日志服务。Kafka核心模块使用Scala语言开发,支持多种语言(如Java,C/C++,Python,Go,Erlang,Node.js等)客户端。
Kafka的三个关键特性
- 能够允许发布和订阅流数据。
- 存储数据是提供相应的容错机制。
- 当数据达到时能够被及时处理。
Kafka的使用场景:
- 消息系统。Kafka作为一款优秀的消息系统,具有高吞吐量、内置分区、备份冗余分布式等特点,为大规模的消息处理提供了一种很好的解决方案。
- 应用监控。使用Kafka采集应用程序和服务器的健康相关的指标,如cpu占用率,IO内存,连接数,tps,qps,然后将指标信息进行处理,从而构建一个具有监控仪表盘、曲线图等可视化监控系统
- 网站用户行为追踪。将用户操作轨迹、内容等信息发送到kafka集群中,与大数据相关技术结合,对用户进行个性化推荐。
- 流处理。Kafka Streams支持对流数据的处理。
- 持久性日志。
安装前准备:
- Kafka的下载地址: https://kafka.apache.org/downloads
- 本次使用的kafka版本是 kafka_2.11-1.0.0,前面的2.11代表的是Scala的版本后面为kafka的版本号。
- 由于是Scala语言开发,运行在JVM上,因此安装Kafka之前先要安装JDK。
- Kafka官方推荐使用JDK1.8。
单机版的Kafka的安装:
- 创建安装目录:
mkdir -p /usr/local/src/kafka-single
- 解压到指定的目录下:
tar -zxvf kafka_2.11-1.0.0.tgz -C /usr/local/src/kafka-single/
- 修改Kafka的配置文件 :
vim /usr/local/src/kafka-single/kafka_2.11-1.0.0/config/server.properties
- 主要是修改三个地方的配置:
指定kafka的日志存放位置: log.dir=/data/kafka/logs-1
指定kafka的ip和端口号: listeners = PLAINTEXT://192.168.81.132:9092
指定kafka的服务器id: broker.id=1
- 启动zk :
./bin/zookeeper-server-start.sh -daemon config/zookeeper.properties
注:-daemon也可以不加,你再克隆一个窗口就好,这里我们让其后台运行
- 启动kafka :
./bin/kafka-server-start.sh -daemon config/server.properties
- 执行jps查看 java进程:
-
创建Topic :
./bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
-
查看所有的topic :
./bin/kafka-topics.sh --list --zookeeper localhost:2181
-
是用生产者生产消息 :
./bin/kafka-console-producer.sh --broker-list 192.168.81.132:9092 --topic test
-
使用消费者查看以生产的消息 :
./bin/kafka-console-consumer.sh --bootstrap-server 192.168.81.132:9092 --topic test --from-beginning
-
查看topic的相关信息:
./bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic test
-
停止kafka的命令:
bin/kafka-server-stop.sh server.properties
-
停止zk的命令
bin/zookeeper-server-stop.sh config/zookeeper.properties
好了单机版的基本使用就介绍到这里了下次介绍集群版的Kafka使用