简介:
Apache Kafka是分布式发布-订阅消息系统,在 kafka官网上对 kafka 的定义:一个分布式发布-订阅消息传递系统。 它最初由LinkedIn公司开发,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。Kafka是一种快速、可扩展的、设计内在就是分布式的,分区的和可复制的提交日志服务。
主要安装流程如下:
环境准备:
zookeeper:zookeeper-3.4.10
kafka:kafka_2.11-1.0.0
jdk:jdk8(kafka启动需要使用到jdk)
一.安装部署zookeeper单机模式
1.下载zookeeper-3.4.10并开始安装:
cd /usr/local
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz
2.安装成功后解压:
tar -zxvf zookeeper-3.4.10.tar.gz
3.配置zookeeper启动文件:
mkdir /home/alian/zookeeper/data
cd zookeeper-3.4.10/conf/
cp zoo_sample.cfg zoo.cfg (修改配置文件名)
vim zoo.cfg
配置文件中相应属性值设置为如下:
initLimit=10
syncLimit=5
dataDir=/home/alian/zookeeper/data
clientPort=2181
4.配置zookeeper环境变量:
vim /etc/profile
添加内容如下:
export ZOOKEEPER_HOME=/home/alian/zookeeper
export PATH=.:$ZOOKEEPER_HOME/bin:$JAVA_HOME/bin:$PATH
刷新环境变量并生效
source /etc/profile
5.启动zookeeper服务:
/usr/local/zookeeper-3.4.10/bin/zkServer.sh start
二.安装配置kafka单机模式
1.下载kafka_2.11-2.0.0并开始安装:
cd /usr/local
wget https://archive.apache.org/dist/kafka/2.0.0/kafka_2.11-2.0.0.tgz
2.安装成功后解压:
tar -zxvf kafka_2.11-2.0.0.tgz
3.进入kafka/config目录下
并修改server.properties,zookeeper.properties,producer.properties,consumer.properties这四个配置文件
配置server.properties:
以下为修改内容,其他为默认即可:
#broker.id需改成正整数,单机为1就好
broker.id=1
#指定端口号
port=9092
#localhost这一项还有其他要修改,详细见下面说明
host.name=localhost
#指定kafka的日志目录
log.dirs=/usr/local/kafka_2.11-2.0.0/kafka-logs
配置zookeeper.properties:
以下为修改内容,其他为默认即可:
#数据目录
dataDir=/usr/local/kafka_2.11-2.0.0/zookeeper/data
#客户端端口
clientPort=2181
host.name=localhost
配置producer.properties:
以下为修改内容,其他为默认即可:
zookeeper.connect=localhost:2181
配置consumer.properties:
以下为修改内容,其他为默认即可:
zookeeper.connect=localhost:2181
三.kafka的使用:
1.进入/usr/local/kafka_2.11-2.0.0目录下:
cd /usr/local/kafka_2.11-2.0.0
2.启动zookeeper服务:
bin/zookeeper-server-start.sh config/zookeeper.properties
3.启动kafka服务:
bin/kafka-server-start.sh config/server.properties
四.测试:
创建topic:
[root@test /usr/local/kafka_2.11-2.0.0]# bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic aliantest
显示topic:
[root@test /usr/local/kafka_2.11-2.0.0]# bin/kafka-topics.sh --list --zookeeper localhost:2181
列出topic:
[root@test /usr/local/kafka_2.11-2.0.0]# bin/kafka-topics.sh --list --zookeeper localhost:2181 aliantest
产生消息,创建消息生产者
root@ubuntu-dev-op-1:/usr/local/kafka_2.11-2.0.0# bin/kafka-console-producer.sh --broker-list localhost:9092 --topic aliantest
>1
>alian
>09999
>www.qq.com
消费消息,创建消息消费者
root@ubuntu-dev-op-1:/usr/local/kafka_2.11-2.0.0# bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic aliantest
1
alian
09999
www.qq.com
删除 topic 和关闭服务
[root@test /usr/local/kafka_2.11-2.0.0]# bin/kafka-topics.sh --delete --zookeeper localhost:2181 --topic test
启动服务:
[root@test /usr/local/kafka_2.11-2.0.0]# bin/kafka-server-start.sh config/server.properties &
停止服务:
[root@test /usr/local/kafka_2.11-2.0.0]# bin/kafka-server-stop.sh
![e2dc3c8afa24de0de40bf5f1d555408a.png](https://i-blog.csdnimg.cn/blog_migrate/e20f960a8299e498b4d9d8ed0a69c6e2.jpeg)