Apache kafka 是一个分布式的基于push-subscribe的消息系统,它具有快速、可扩展、可持久化的特色。它如今是Apache旗下的一个开源系统,做为hadoop生态系统的一部分,被各类商业公司普遍应用。它的最大的特性就是能够实时的处理大量数据以知足各类需求场景:好比基于hadoop的批处理系统、低延迟的实时系统、storm/spark流式处理引擎。html
高吞吐量、低延迟:kafka每秒能够处理几十万条消息,它的延迟最低只有几毫秒
可扩展性:kafka集群支持热扩展
持久性、可靠性:消息被持久化到本地磁盘,而且支持数据备份防止数据丢失
容错性:容许集群中节点失败(若副本数量为n,则容许n-1个节点失败)
高并发:支持数千个客户端同时读写java
1.日志收集:一个公司能够用Kafka能够收集各类服务的log,经过kafka以统一接口服务的方式开放给各类consumer,例如hadoop、Hbase、Solr等。
2.消息系统:解耦和生产者和消费者、缓存消息等。
3.用户活动跟踪:Kafka常常被用来记录web用户或者app用户的各类活动,如浏览网页、搜索、点击等活动,这些活动信息被各个服务器发布到kafka的topic中,而后订阅者经过 web
4.订阅这些topic来作实时的监控分析,或者装载到hadoop、数据仓库中作离线分析和挖掘。
5.运营指标:Kafka也常常用来记录运营监控数据。包括收集各类分布式应用的数据,生产各类操做的集中反馈,好比报警和报告。
6.流式处理:好比spark streaming和storm
7.事件源apache
关于JDK的安装及环境变量配置,这里就不赘述了。不清楚的能够查看JDK安装与环境变量配置。(建议下载Oracle官方发布的Java,下载地址是:http://www.java.com/download/)。windows
先从Zookeeper官网下载Zookeeper安装包。缓存
下载完成以后, 在D盘新建一个bigData目录(D:\bigData),用于做为安装zookeeper和kafka的目录,直接解压zookeeper安装包。注意:路径中最好不要出现空格,好比D:\Program Files,尽可能别用,运行脚本时会有问题。服务器
a. 进入zookeeper的相关设置所在的文件目录,例如本文的:D:\bigData\zookeeper-3.4.10\conf,将zoo_sample.cfg重命名为zoo.cfg。打开zoo.cfg,修改配置以下:并发
注:此处只是修改dataDir=/tmp/zookeeper的配置。app
b. 配置zookeeper环境变量:负载均衡
ZOOKEEPER_HOME=D:\bigData\zookeeper-3.4.10
编辑系统变量中的path变量,增长%ZOOKEEPER_HOME%\bin
此时zookeeper已经配置完成,打开cmd,输入zkserver,运行zookeeper,运行结果以下:
首先从Kafka官网http://kafka.apache.org/downloads下载Kafka安装包。(要下载Binary downloads这个类型,不要下载源文件,方便使用)
修改Kafka配置文件:
a. 修改config目录下的server.properties文件,修改log.dirs=D:/bigData/kafka_2.11-1.1.0/kafka-logs 。
注:在server.properties文件中,zookeeper.connect=localhost:2181表明kafka所链接的zookeeper所在的服务器IP以及端口,可根据须要更改。本文在同一台机器上使用,故不
用修改。
b.修改config目录下的log4j.properties文件,修改log4j.appender.kafkaAppender.File=D:/bigData/kafka_2.11-1.1.0/logs/server.log
其余地方暂时先不用修改,kafka会按照默认配置,在9092端口上运行,并链接zookeeper的默认端口2181。
注:在启动kafka服务器前,必须确保Zookeeper实例已经在运行,由于kafka的运行是须要zookeeper这种分布式应用程序协调服务。
进入kafka安装目录D:\bigData\kafka_2.11-1.1.0,按下shift+鼠标右键,选择"在此处打开命令窗口",打开命令行,在命令行中输入:.\bin\windows\kafka-server-start.bat .\config\server.properties回车。正常启动界面如图:
注意:windows下kafka启动报错,找不到或没法加载主类 Files\Java\jdk1.8.0_121\lib\dt.jar;C:\Program的问题。
解决方法:
打开路径D:\bigData\kafka_2.11-1.1.0\bin\windows 下的文件kafka-run-class.bat,搜索-cp %CLASSPATH%,修改为-cp "%CLASSPATH%"
建立主题(Topic)
此时Topic建立完成,能够在kafka安装目录查看到该topic对应的目录。
建立生产者(producer)
建立消费者(consumer)
如今生产者、消费者均已建立完成。在生产者命令行窗口输入信息,观察消费者命令行窗口。
以上为kafka在windows下的安装和基本的使用。
其实新版本的Kafka已经自带zookeeper。Kafka使用zookeeper做为其分布式协调框架,很好的将消息生产、消息存储、消息消费的过程结合在一块儿。同时借助zookeeper,kafka可以生产者、消费者和broker在内的因此组件在无状态的状况下,创建起生产者和消费者的订阅关系,并实现生产者与消费者的负载均衡。
所以,在上边步骤中,咱们能够不安装zookeeper,直接修改Kafka的config目录中(D:\bigData\kafka_2.11-1.1.0\config)的zookeeper.properties文件
#dataDir=/tmp/zookeeper
dataDir=D:/bigData/kafka_2.11-1.1.0/data/zookeeper
在D:\bigData\kafka_2.11-1.1.0\bin\windows目录下打开新的命令行,输入命令:zookeeper-server-start.bat ../../config/zookeeper.properties回车。一样能够启动zookeeper。