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代码
- 9091
- 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即可退出发送消息或消费消息进程。