术语
Topic:
Kafka将消息种子(Feed)分门别类, 每一类的消息称之为话题(Topic).
Producer:
发布消息的对象称之为话题生产者(Kafka topic producer)
Consumer:
订阅消息并处理发布的消息的种子的对象称之为话题消费者(consumers)
Broker:
已发布的消息保存在一组服务器中,称之为Kafka集群。集群中的每一个服务器都是一个代理(Broker). 消费者可以订阅一个或多个话题,并从Broker拉数据,从而消费这些已发布的消息。
环境搭建
下载kafka
下载完后进行解压
tar -zxvf kafka_2.9.2-0.8.2.2.tgz进入目录
*/kafka_2.9.2-0.8.2.2/bin首先需要启动zookeeper,默认kafka中自带zookeeper,这里我们使用默认的启启动。
./zookeeper-server-start.sh /kafka/kafka_2.9.2-0.8.2.2/config/zookeeper.properties
- 启动kafka
./kafka-server-start.sh /kafka/kafka_2.9.2-0.8.2.2/config/server.properties
- 创建一个名为test的topic
[root@localhost bin]# ./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
- 查看创建的topic
[root@localhost bin]# ./kafka-topics.sh --list --zookeeper localhost:2181
- 发送消息
[root@localhost bin]# ./kafka-console-producer.sh --broker-list localhost:9092 --topic test
- 消费消息
[root@localhost bin]# ./kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
集群搭建
- 复制2份配置文件
[root@localhost config]# cp server.properties /kafka/kafka_2.9.2-0.8.2.2/config/server-1.properties
[root@localhost config]# cp server.properties /kafka/kafka_2.9.2-0.8.2.2/config/server-2.properties
- 编辑配置文件
config/server-1.properties:
broker.id=1
port=9093
log.dir=/tmp/kafka-logs-1
config/server-2.properties:
broker.id=2
port=9094
log.dir=/tmp/kafka-logs-2
- 启动所有kafka服务
./kafka-server-start.sh /kafka/kafka_2.9.2-0.8.2.2/config/server-1.properties &
./kafka-server-start.sh /kafka/kafka_2.9.2-0.8.2.2/config/server-2.properties &
- 新建topic并将备份数量设置为3
./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic my-replicated-topic
- 查看每个集群在做什么
./kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topic
“leader”:该节点负责所有指定的分区读和写,每个节点将领导一个随机选择的分区。
“replicas”:备份的节点,无论该节点是否活着,只是显示。
“isr”:备份节点的集合,也就是活着的节点集合。