Kafka笔记一之简介,安装

来源:互联网 发布:优化你的大脑魔力pdf 编辑:程序博客网 时间:2024/06/13 23:34

简介

消息队列(Message Queue):消息数据先进先出是有顺序的

缓存池:提供数据的存储和读取接口,生产者生产数据,消费者消费数据,保证数据的可靠性。

 

消息队列分为两种形式,一对一(P2P)和一对多(发布订阅pub/sub)。

共同点:生产者生产消息并发送到队列中,消费者从队列中读取消息并消费

不同点:P2P一个生产者+一个消费者,消息一旦被消费则不存在于队列中,比如打电话。

                   一对多(发布订阅pub/sub)一个生产者多个消费者,一个消息可以被多个消费者消费彼此之间互不影响,比如微博。

 

Kafak就是一种发布订阅系统,使用scala编写。

高吞吐量:每秒百万级消息的生产与消费

持久性:有自己一套完善的存储机制,确保数据高效安全

分布式:具有可扩展高容错的特点


Kafka组件

Topic:主题,是kafka处理消息的分类

Broker:消息代理,一个kafka服务节点就是一个broker,数据就存储在此代理中

Partition:topic的物理分组,一个topic在broker中可以分为多个分区,在创建时指定

Message:消息,是通信的基本单位,每个消息都属于一个分区

 

Producer:生产消息,向kafka的topic发送消息

Consumer:消费消息,订阅topic并处理其发布的消息

Zookeeper:协调kafka正常运行


注意:

1.zookeeper协调工作存储元数据,所以无zookeer不kafka

2.kafka中每个broker都是平等的无主备之分

3.broker无副本机制但是partition有副本机制


Kafka安装

下载

http://kafka.apache.org/downloads.html



kafka_2.11-0.8.2.2

0.8.2.2表示kafka本身的版本,2.11表示使用的scala版本,kafka是scala编写的

 

拷贝到linux上解压安装

[root@shb01 local]# tar zvxfkafka_2.11-0.8.2.2.tgz

[root@shb01 local]# mv kafka_2.11-0.8.2.2kafka

解压缩后有三个目录,bin是可执行文件,config是配置文件,lib依赖的架包


启动

使用kafka必须启动zookeeper,有两种方式,使用kafka内置的zk和使用外置的zk,推荐使用外置的zk

1.启动内置zk,如果有zk集群则推荐使用集群

修改config目录下的zookeeper.properties

dataDir=/usr/local/zk/datakafka 此目录存放zk数据默认在/tmp/zookeeper目录下建议修改

clientPort=2181  表示zk端口

 

启动zk服务

[root@shb01 kafka]# nohup/usr/local/kafka/bin/zookeeper-server-start.sh /usr/local/kafka/config/zookeeper.properties>/usr/local/zk/logs/kafka_zk.log2>&1 &

 

Nohup表示不会因为关闭窗口而关闭服务

zookeeper-server-start.sh表示启动zk

zookeeper.properties表示传入zk的参数配置文件

/usr/local/zk/logs/kafka_zk.log表示重定向的日志文件

2>&1表示标准输出和错误输出都打印在控制台

&表示后台运行

 

QuorumPeerMain就是zk服务

[root@shb01 config]# jps

3542 Jps

3363 QuorumPeerMain

 

关闭zk服务

zookeeper-server-stop.sh

 

2.启动kafka-server

首先配置config目录下的server.properties文件

主要配置以下几个参数

broker.id=0表示broker的id,其它的节点为1,2,3依此类推

port=9092此为服务的端口,默认

log.dirs=/opt/kafka_data,broker用于存储数据,此目录就是存储数据的目录而不是日志目录,生产者要向里面生产数据,注意这个目录不要太长否则会报错

zookeeper.connect=shb01:2181,192.168.79.139:2181表示zk连接,我这里有两个节点shb01和139

 

139上的server.properties中broker.id=1,其它一致

 

[root@shb01 bin]# nohup/usr/local/kafka/bin/kafka-server-start.sh/usr/local/kafka/config/server.properties>/usr/local/data/kafka/logs/kafka-server.log 2>&1 &


启动成功后会看到kafka服务为3955


3关闭kafka

[root@shb01 bin]# kafka-server-stop.sh




0 0