kafka学习笔记

kafka介绍

Apache Kafka® 是 一个分布式流处理平台
kafka官方中文文档https://kafka.apachecn.org/

分布式:日志的分区partition (分布)在Kafka集群的服务器上。每个服务器在处理数据和请求时,共享这些分区。每一个分区都会在已配置的服务器上进行备份,确保容错性.

  • Kafka作为一个集群,运行在一台或者多台服务器上.
  • Kafka 通过 topic 对存储的流数据进行分类
  • 每条记录中包含一个key,一个value和一个timestamp(时间戳)
  • Kafka的性能和数据大小无关
  • kafka依赖于zookeeper
    在Kafka中,客户端和服务器使用一个简单、高性能、支持多语言的 TCP 协议.此协议版本化并且向下兼容老版本, 我们为Kafka提供了Java客户端,也支持许多其他语言的客户端。

kafka功能

  • 队列:消费者池从server读取数据,每条记录处理过程分发被池子中的一个消费者消费;

  • 发布-订阅:Kafka允许你将消息广播给多个消费组。
    Kafka能够为一个消费者池提供顺序保证和负载平衡,是通过将topic中的partition分配给消费者组中的消费者来实现的

  • kafka可以作为存储系统
    数据写入Kafka后被写到磁盘,并且进行备份以便容错。直到完全备份,可以存储大量数据,并且可通过客户端控制它读取数据的位置

  • Kafka用做流处理
    不仅仅用来读写和存储流式数据,它最终的目的是为了能够进行实时的流处理。
    流处理器不断地从输入的topic获取流数据,处理数据后,再不断生产流数据到输出的topic中去。

  • 批处理
    在这里插入图片描述

  • Producers 生产者
    生产消息的平台;生产者可以将数据发布到所选择的topic(主题)中,可以使用循环的方式来简单地实现负载均衡

  • Consumers 消费者
    消费消息的平台;Kafka中实现消费的方式是将日志中的分区划分到每一个消费者实例上

  • topic(提供一串流式的记录)
    Topic 就是数据主题,是数据记录发布的地方,可以用来区分业务系统。Kafka中的Topics总是多订阅者模式,一个topic可以拥有一个或者多个消费者来订阅它的数据。

'运行list(列表)列出所有的topic'
  bin/kafka-topics.sh --zookeeper node1:2181 --list 
'创建topic'
  bin/kafka-topics.sh --create --zookeeper node1:2181 --replication-factor 1 --partitions 1 --topic 新建topic名称  

或者,您也可将代理配置为:在发布的topic不存在时,自动创建topic,而不是手动创建。

  • offset(偏移量)
    每个分区都是有序且顺序不可变的记录集,并且不断地追加到结构化的commit log文件。分区中的每一个记录都会分配一个id号来表示顺序,我们称之为offset
    offset用来唯一的标识分区中每一条记录。
    offset(偏移量)即消费在log中的位置.偏移量由消费者所控制,一个消费者可以重置到一个旧的偏移量,从而重新处理过去的数据;也可以跳过最近的记录,从"现在"开始消费。
'重置该消费组offset'
 bin/kafka-consumer-groups.sh --bootstrap-server node1:9092,node2:9092,node3:9092  --group 消费组  --reset-offsets --execute --to-offset 1001(偏移量) --topic topic名称 

partition(分区)
对于每一个topic, Kafka集群都会维持一个分区日志,一个主题可能有多个分区

> 运行"describe topics"命令来查看topic的详细信息
> bin/kafka-topics.sh --describe --zookeeper node1:2181 --topic topic名称

Topic:my-replicated-topic PartitionCount:1 ReplicationFactor:3 Configs:
Topic: my-replicated-topic Partition: 0 Leader: 1 Replicas: 1,2,0 Isr: 1,2,0

  • leader”是负责给定分区所有读写操作的节点。每个节点都是随机选择的部分分区的领导者。
  • replicas”是复制分区日志的节点列表,不管这些节点是leader还是仅仅活着。
  • isr”是一组“同步”replicas,是replicas列表的子集,它活着并被指到leader。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值