Kafka

定义

Kafka 是一个分布式、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统,也可以当做消息系统,常见可以用于web/nginx日志、访问日志,消息服务等等。

特点

Kafka主要设计目标如下:

Kafka 与 Zookeeper

简单地理解,Kafka 的分布式,很大程度上是通过 Zookeeper 来实现的:

详细参考如下:

安装

以下演示在 linux 环境安装的过程。

Download

wget https://archive.apache.org/dist/kafka/0.11.0.0/kafka_2.11-0.11.0.0.tgz

Unzip

tar -xvf kafka_2.11-0.11.0.0.tgz -C kafka/

Change Server Config

vim ~/.bash_profile

export KAFKA_HOME=$HOME/kafka/kafka_2.11-0.11.0.0
export PATH=$PATH:$KAFKA_HOME/bin

source ~/.bash_profile

Change Kafka Config

vim $KAFKA_HOME/server.properties

log.dirs=/root/logs/kafka-logs
zookeeper.connect=hadoop000:2181

使用

Start Kafka Server

./kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties

然后,可以使用jps查看新启动的进程:

7214 Kafka

Start Zookeeper

启动服务:zkServer.sh start

查看状态:zkServer.sh status

Create Kafka Topic

./kafka-topics.sh --create --zookeeper hadoop000:2181 --replication-factor 1 --partitions 1 --topic maxkafka

结果 ->

Created topic "maxkafka".

Create Producer

新开一个窗口,命令:./kafka-console-producer.sh --broker-list hadoop000:9092 --topic maxkafka

->

(ready to send)

> hello world
> kafka
>

Create Consumer

新开一个窗口,命令:./kafka-console-consumer.sh --zookeeper hadoop000:2181 --topic maxkafka

->

(listening)

> hello world
> kafka
>

在 Producer 窗口中发送一个消息,在 Consumer 窗口中就可以收到。

Fork me on GitHub