目录
Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。kafka的分布式部署依赖于zookeeper。安装配置zookeeper请参阅:zookeeper的配置和分布式部署
说明:三台机器的主机名分别为:bigdata.centos01、bigdata.centos02、bigdata.centos03
一、相关概念介绍
- Broker
Kafka集群包含一个或多个服务器,这种服务器被称为broker
- Producer
消息生产者,负责发布消息
- Consumer
消息消费者,复制从broker拉取消息进行处理
- Topic
每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic
- Partition
每个topic可以有一个或者多个partition,合理设置partition的数量,能够提高吞吐效率。每个Partition在物理上对应一个文件夹,该文件夹下存储这个Partition的所有消息和索引文件。若创建topic_1和topic_2两个topic,分别有11个和19个分区,则整个集群上会相应会生成共30个文件夹
- Consumer Group
每个consumer属于一个特定的consumer group
二、下载和配置
1. 下载
wget http://archive.apache.org/dist/kafka/0.10.1.0/kafka_2.10-0.10.1.0.tgz
2. 配置
- 修改config/server.properties
# broker的唯一标识
##centos01配置的是0,centos02配置的是1,centos03配置的是2
broker.id=0
# kafka所在机器的主机名,三台机器各不相同
host.name=bigdata.centos01
# 日志文件目录
log.dirs=/opt/modules/kafka_2.11-0.8.2.1/logs
# zookeeper集群
zookeeper.connect=bigdata.centos01:2181,bigdata.centos02:2181,bigdata.centos03:2181
- 修改config/producer.properties
# 集群broker的配置
metadata.broker.list=bigdata.centos01:9092,bigdata.centos02:9092,bigdata.centos03:9092
三、服务启动和测试
1. 创建Topic
# --replication-factor指定副本数
# --partitions分区数
# --topic指定topic名称
bin/kafka-topics.sh --create --zookeeper bigdata.centos01:2181,bigdata.centos02:2181,bigdata.centos03:2181 --replication-factor 1 --partitions 1 --topic test
2. 服务启动
- 启动kafka的服务,三台机都执行
bin/kafka-server-start.sh config/server.properties
- 启动Producer,选择任意一台机器执行
bin/kafka-console-producer.sh --broker-list bigdata.centos01:9092,bigdata.centos02:9092,bigdata.centos03:9092 --topic test
- 启动Consumer,选择任意一台执行
bin/kafka-console-consumer.sh --zookeeper bigdata.centos01:2181,bigdata.centos02:2181,bigdata.centos03:2181 --topic test --from-beginning
3.测试
- Producer生产消息
- Consumer接受消息