1.Kafka简介
Kafka如同JMS(Java Message
Service)一样,是一个中间件,在异构系统间通信,为不同的系统之间提供服务。我们知道JMS通过队列(一对一)与主题(一对多)两种形式提供服务,而Kafka则通过主题(topic),来给一组消费者提供服务,但是这一组消费者中只能有一个消费者消费,这样就将JMS的队列与主题提供的服务整合在一起(一对一:针对一组消费者里的一个消费者,一对多:针对多组消费者)。
Kafka是由Apache软件基金会
<https://baike.baidu.com/item/Apache%E8%BD%AF%E4%BB%B6%E5%9F%BA%E9%87%91%E4%BC%9A>
开发的一个开源流处理平台,由Scala <https://baike.baidu.com/item/Scala>和Java
<https://baike.baidu.com/item/Java/85979>编写。Kafka是一种高吞吐量的分布式
<https://baike.baidu.com/item/%E5%88%86%E5%B8%83%E5%BC%8F>发布订阅消息系统
,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。
这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像Hadoop <https://baike.baidu.com/item/Hadoop>
的一样的日志 <https://baike.baidu.com/item/%E6%97%A5%E5%BF%97/2769135>
数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop
<https://baike.baidu.com/item/Hadoop>的并行加载机制来统一线上和离线的消息处理,也是为了通过集群
<https://baike.baidu.com/item/%E9%9B%86%E7%BE%A4>来提供实时的消息。
Kafka是一个分布式流处理平台,在不同的系统之间构建实时的数据流通管道。以主题(topic)分类对记录进行存储。每个记录包含key-value+timestamp,每秒钟百万消息吞吐量。
2.Kafka组成
producer //消息生产者
consumer //消息消费者
consumer group //消费者组
kafka server //broker,kafka服务器
topic //主题
zookeeper //系统服务
3..Kafka集群安装
0.选择s10 ~ s12三台主机安装kafka
1.准备zk(之前已经配置)
略
2.jdk(之前已经配置)
略
3.tar文件
tar -zxvf kafka_2.11-0.10.2.1
建立符号链接: ln -s kafka_2.11-0.10.2.1 kafka
4.环境变量[/etc/profile]
#kafka
export KAFKA_HOME=/home/zpx/soft/kafka
export PATH=$PATH:$KAFKA_HOME/bin
source /etc/profile
5.配置kafka
[kafka/config/server.properties]
...
broker.id=10
...
listeners=PLAINTEXT://:9092
...
log.dirs=/home/zpx/kafka/logs
...
zookeeper.connect=s10:2181,s11:2181,s12:2181
6.分发server.properties到所有的主机节点上,同时修改每个文件的broker.id(我设置3个数值是10,11,12)
7.启动kafka服务器
a)先启动zk
b)启动kafka(前提是已经开启zookeeper)
[s10 ~ s12]
如下启动之后会阻塞
$>bin/kafka-server-start.sh config/server.properties
建议使用如下方式,在后台运行:
$> kafka-server-start.sh -daemon ../config/server.properties
c)验证kafka服务器是否启动
$>netstat -anop | grep 9092
软件包:
链接:https://pan.baidu.com/s/1SJC_huvlp1_4bHHiBse8jA 密码:nsv5
热门工具 换一换