1.下载地址

http://kafka.apache.org/downloads.html2.配置文件 清单 1. Kafka Broker 配置项
vim /usr/local/kafka_2.11-0.9.0.1/config/server.properties  
host.name=192.168.xx.100
advertised.host.name=192.168.xx.100
listeners=PLAINTEXT://192.168.xx.100:9092
log.dirs=/usr/local/kafka_2.11-0.9.0.1/kafka-logs
num.partitions=5 #分区的数目
zookeeper.connect=node-1:2181,node-2:2181,node-3:2181

  • broker.id:Kafka broker 的唯一标识,集群中不能重复。
  • port: Broker 的监听端口,用于监听 Producer 或者 Consumer 的连接。
  • host.name:当前 Broker 服务器的 IP 地址或者机器名。
  • zookeeper.contact:Broker 作为 zookeeper 的 client,可以连接的 zookeeper 的地址信息。
  • log.dirs:日志保存目录。

清单 2. Kafka Producer 配置项


broker.list=192.168.1.1:9092,192.168.1.2:9092,192.168.1.3:9092 

 producer.type=async 
•  broker.list:集群中 Broker 地址列表。
•  producer.type: Producer 类型,async 异步生产者,sync 同步生产者。
 清单 3. Kafka Consumer 配置项 

 zookeeper.contact=192.168.1.1:2181,192.168.1.2:2181,192.168.1.3:2181 
•  zookeeper.contact: Consumer 可以连接的 zookeeper 服务器地址列表。


3、启动与停止


4、创建一个topic

./kafka-server-start.sh  ../config/server.properties &
1. 2181 --replication-factor 3 --partitions 3

5、向topic发送消息、从topic消费消息


Java代码  

kafka manager创建group_zookeeper


  1. 9091
  2. 2181

6、查看topic


#

./kafka-topics.sh --list --zookeeper localhost:12181

就会显示我们创建的所有topic


7、查看topic状态


#

/kafka-topics.sh --describe --zookeeper localhost:12181 -- 
topic shuaige

下面是显示信息


Topic:ssports PartitionCount:1 ReplicationFactor:2 
 Configs: Topic: shuaige Partition: 0 Leader: 

Topic: shuaige Partition: 0 Leader:1 Replicas: 0,1 Isr: 1 

#

分区为为1 复制因子为2 他的 shuaige的分区为0


#

Replicas: 0,1 复制的为0,1


#

首先,我们来了解下有关Kafka的几个基本概念:

Topic:Kafka把接收的消息按种类划分,每个种类都称之为Topic,由唯一的Topic Name标识。

Producer:向Topic发布消息的进程称为Producer。

Consumer:从Topic订阅消息的进程称为Consumer。

Broker:Kafka集群包含一个或多个服务器,这种服务器被称为Broker。

Kafka的整体架构如下图所示,典型的Kafka集群包含一组发布消息的Producer,一组管理Topic的Broker,和一组订阅消息的Consumer。Topic可以有多个分区,每个分区只存储于一个Broker。Producer可以按照一定的策略将消息划分给指定的分区,如简单的轮询各个分区或者按照特定字段的Hash值指定分区。Broker需要通过ZooKeeper记录集群的所有Broker、选举分区的Leader,记录Consumer的消费消息的偏移量,以及在Consumer Group发生变化时进行relalance. Broker接收和发送消息是被动的:由Producer主动发送消息,Consumer主动拉取消息。

a. 编辑 config/server.properties 文件

添加或修改以下配置。

broker.id=0 #集群中唯一id  

port=9092

这些配置项解释如下:

b. 编辑 config/producer.properties 文件

添加或者修改以下配置:

这些配置项解释如下:

c. 编辑 config/consumer.properties 文件

配置项解释如下:

再对另外两个kafka服务进行同样的配置:

 

bin/kafka-server-start.sh config/server.properties &

所有的kafka服务启动完成后,执行jps,可以看到:

QuorumPeerMain

停止命令

./bin/kafka-server-stop.sh

 

--create:创建topic

--zookeeper:连接的zookeeper节点地址

--replication-factor:数据副本数量

--partitions:对创建的topic进行分片

--topic:要创建的topic名称

 

--broker-list:此处不是zookeeper的地址,而是kafka客户端的地址

--topic:向哪个topic发送消息

 

--zookeeper:这里为zookeeper地址,不需要kafka客户端地址

--from-beginning:kafka消息存储在文件内,能够重复消费,这里代表偏移量(offsets)

--topic:从哪个topic消费消息

 

如果你同时开启producer、consumer两个bash窗口,当从producer向指定的topic发送消息时,便能看到consumer对其进行了消费,使用ctrl c即可退出发送消息或消费消息进程。