Kafka实战配置操作手册_shell版
V0.10
1 简介
1.1 基本概念
Kafka是一个分布式的流平台,能够发布和订阅消息(流),在这方面,它类似于一个消息队列或企业消息系统。以容错(故障转移)的方式存储消息(流)。它的优势是能够构建实时的流数据管道,可靠地获取系统和应用程序之间的数据,也能够构建实时流的应用程序,对数据流进行转换或反应
1.2 基本术语
Topic:Kafka将消息分门别类,每一类的消息称之为一个主题(Topic)。
Producer:发布消息的对象称之为主题生产者(Kafka topic producer)
Consumer:订阅消息并处理发布的消息的对象称之为主题消费者
Broker已发布的消息保存在一组服务器中,称之为Kafka集群。集群中的每一个服务器都是一个代理(Broker)。 消费者可以订阅一个或多个主题(topic),并从Broker拉数据,从而消费这些已发布的消息。
1.3 流程图

2. 安装部署
Kafka的运行需要有java,zookeeper,因此我们的安装在linux里分为三步,下面涉及的jdk,kafka,zookeeper等安装包可评论或私信我获取
caution:以下的${path}代表你linux系统里该文件的实际路径,文中涉及到的IP为虚拟IP
2.1 安装java(如已安装略过此步)
解压 :tar -xvf ${path}/jdk-8u144-linux-x64.tar.gz
配置环境变量:vim /etc/profile 在最后面添加
# Java Env
export JAVA_HOME=${path}/jdk1.8.0_144
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
2.2 安装zookeeper
解压:tar -xvf ${path}/ zookeeper-3.4.12.tar.gz
配置:更改conf里的vim zoo.cfg,配置及注释如下:
启动:bin/zkServer.sh config/zookeeper.properties, sh脚本启动需要指定使用属性文件当参数,可更改该sh默认使用
检查:ps -ef | grep zook,出现zookeeper则证明安装配置成功,如未成功通过看zookeeper.out日志查看详细
2.3 安装kafka
解压:tar -xvf ${path}/ kafka_2.11-1.1.1.tar.gz
配置:更改conf里的vim server.properties,配置及注释如下:
broker.id=0
listeners=PLAINTEXT://192.168.49.129:9092
log.dirs=/u01/kafka_2.11-1.1.1/logs
zookeeper.connect=192.168.49.129:2181
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
num.partitions=12
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=3
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0
log.retention.hours=3
offsets.retention.minutes=2880
delete.topic.enable=true
auto.create.topics.enable=true
default.replication.factor=2
启动:bin/kafka-server-start.sh config/server.properties &
检查:ps -ef | grep kafka,出现kafka则证明安装配置成功,如未成功通过看logs日志查看详细
3 测试使用
至上kafka已经安装部署完成,现在我们测试使用,创建好topic后,首先进行数据生产,然后数据消费,体验kafka的数据流平台
3.1 建立topic
cd ${path}/kafka_2.11-1.1.1
bin/kafka-topics.sh --create –zookeeper 192.168.49.129:2181 --replication-factor 1 --partitions 1 --topic test
创建好之后,查看是否创建成功
bin/kafka-topics.sh --list --zookeeper 192.168.49.129:2181
如果显示test 则证明创建成功
3.2 数据生产
bin/kafka-console-producer.sh --broker-list 192.168.49.129:9092 --topic test
可随便输入几行测试数据
3.3 数据消费
bin/kafka-console-consumer.sh --bootstrap-server 192.168.49.129:9092 --topic test --from-beginning
产生如下数据,则kafka初体验完成
由图可以看出不仅输出了我刚刚输入的测试数据,还输出了之前缓存的数据
4 实战
与kafka配合的脚本很多,通常我们会使用java,python,shell,这里为了简便,我们以一个简单的shell实现从MySQL数据库抓取数据到kafka,经过kafka的数据缓存实时同步到其他数据库
脚本附件