Chap4:Storm集成Kafka

本文讨论:
• Kafka概览
• Setting up a single node and multinode Kafka cluster
• Producing data into a Kafka partition
• Using KafkaSpout in a Storm topology to consume messages from Kafka
kafka cluster
kafka中,消息由producer发出,称为topics,它是一个可以被多个消费者消费的队列。kafka topic可以有多个分区,可以在每个分区并行读写,一个topic的每个分区的数据存储在disk的不同目录下,这些目录可以在不同的disk上,允许我们跨越单个disk的I/O限制,一个topic的两个分区可以被不同的brokers定位,这增加了吞吐量,因为每个分区相互独立。每个分区的消息有唯一对应的称为offset的序列号。
kafka消息分布

复制

为了容错,kafka支持复制一个topic的分区,选取一个broker作为分区的leader所有的读写都必须到leader分区。

消费者

消费者从broker读取消息区间。每个消费者有一个groupID。有相同groupID的消费者作为一个逻辑消费者,topic的每个消息从一个消费者组(有相同的groupID)分发到消费者。对一个特定的topic的不同消费者组可以以他们自己的节奏处理消息(因为消息在没被处理之前不会被删除)。
这里写图片描述

Brokers

Broker从producer接收消息(推机制)分发到消费者(拉机制),broker管理持久化消息到disk。对每个topic,它将在disk上创建一个目录。

数据滞留

Kafka中的topic 有个滞留时间,在broker配置文件里通过log.retention.minutes指定。这是个删除操作,非常有效。

单节点kafka

tar -xvzf kafka_2.8.0-0.8.1.1.tgz
cd kafka_2.8.0-0.8.1.1

配置环境变量
在$KAFKA_HOEM/config/server.properties里设置

log.dirs=/var/kafka-logs
zookeeper.connect=zoo1:2181,zoo2:2181,zoo3:2181

启动kafka

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

创建topic

./bin/kafka-topics.sh --create --zookeeper zoo1:2181 --partitions
1 --replication-factor 1 --topic verification-topic

列出topic

./bin/kafka-topics.sh
--zookeeper zoo1:2181 --list
输出:verification-topic

利用kafka的命令行写几条消息

./bin/kafka-console-producer.sh --broker-list localhost:9092
--topic verification-topic
输入:
Message 1
Test Message 2
Message 3

启动消费者窗口

./bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic
verification-topic --from-beginning
输出:Message 1
Test Message 2
Message 3

三个节点的kafka集群

和单节点的区别是server.properties:

broker.id=0    //各broker要唯一
port=9092
host.name=kafka1
log.dirs=/var/kafka-logs
zookeeper.connect=zoo1:2181,zoo2:2181,zoo3:2181

在三个节上启动kafka

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

确认
创建消息

./bin/kafka-topics.sh --create --zookeeper zoo1:2181 --partitions
3 --replication-factor 1 --topic verification

列出消息

./bin/kafka-topics.sh --describe --zookeeper zoo1:2181 --topic
verification
Topic:verification PartitionCount:3
ReplicationFactor:1
Configs:
Topic: verification Partition: 0 Leader: 0 Replicas: 0 Isr: 0
Topic: verification Partition: 1 Leader: 1 Replicas: 0 Isr: 0
Topic: verification Partition: 2 Leader: 2 Replicas: 0 Isr: 0

核实kafka

./bin/kafka-console-producer.sh --broker-list kafka1:9092,kafka2:9
092,kafka3:9092 --topic verification

这里kafka1是broker的IP
写入消息

First
Second
Third

启动消费者

./bin/kafka-console-consumer.sh --zookeeper zoo1:2181 --topic
verification --from-beginning

当然也可以在单个节点上运行多个broker

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值