簡介:
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:
[[email protected] /usr/local/kafka_2.11-2.0.0]# bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic aliantest
顯示topic:
[[email protected] /usr/local/kafka_2.11-2.0.0]# bin/kafka-topics.sh --list --zookeeper localhost:2181
列出topic:
[[email protected] /usr/local/kafka_2.11-2.0.0]# bin/kafka-topics.sh --list --zookeeper localhost:2181 aliantest
産生消息,建立消息生産者
[email protected]:/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
消費消息,建立消息消費者
[email protected]:/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 和關閉服務
[[email protected] /usr/local/kafka_2.11-2.0.0]# bin/kafka-topics.sh --delete --zookeeper localhost:2181 --topic test
啟動服務:
[[email protected] /usr/local/kafka_2.11-2.0.0]# bin/kafka-server-start.sh config/server.properties &
停止服務:
[[email protected] /usr/local/kafka_2.11-2.0.0]# bin/kafka-server-stop.sh
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5SY4ADN1UTNkFjZ1YmYwQTZkBTZkRjMhZWY4M2MjRmMl9CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)