首页 > 其他分享 >Kafka

Kafka

时间:2024-02-20 18:46:39浏览次数:31  
标签:消费 消费者 分区 kafka 组中 Kafka

Kafka架构图:

相关概念如下:

Producer:Producer即生产者,消息的产生者,是消息的入口。
kafka cluster:
Broker:Broker是kafka实例,每个服务器上有一个或多个kafka的实例,我们姑且认为每个broker对应一台服务器。每个kafka集群内的broker都有一个不重复的编号,如图中的broker-0、broker-1等……
Topic:消息的主题,可以理解为消息的分类,kafka的数据就保存在topic。在每个broker上都可以创建多个topic。
Partition:Topic的分区,每个topic可以有多个分区,分区的作用是做负载,提高kafka的吞吐量。同一个topic在不同的分区的数据是不重复的,partition的表现形式就是一个一个的文件夹!
Replication:每一个分区都有多个副本,副本的作用是做备胎。当主分区(Leader)故障的时候会选择一个备胎(Follower)上位,成为Leader。在kafka中默认副本的最大数量是10个,且副本的数量不能大于Broker的数量,follower和leader绝对是在不同的机器,同一机器对同一个分区也只可能存放一个副本(包括自己)。
Message:每一条发送的消息主体。
Consumer:消费者,即消息的消费方,是消息的出口。
Consumer Group:我们可以将多个消费组组成一个消费者组,在kafka的设计中同一个分区的数据只能被消费者组中的某一个消费者消费。同一个消费者组的消费者可以消费同一个topic的不同分区的数据,这也是为了提高kafka的吞吐量!
Zookeeper:kafka集群依赖zookeeper来保存集群的的元信息,来保证系统的可用性。

 

消费注意事项:

1:同一个分区只能被同一个消费者组中的一个消费者消费

在 Kafka 中,一个分区(partition)只能被同一个消费者组(consumer group)中的一个消费者(consumer)消费。这是因为 Kafka 的消费者组模型是基于发布-订阅模式的,每个消费者组中的消费者共同消费一个主题(topic)的所有分区,每个分区只能被一个消费者消费。

如果一个分区被多个消费者组中的消费者消费,那么这些消费者将会重复消费同一条消息,导致数据的重复处理。因此,Kafka 限制了一个分区只能被同一个消费者组中的一个消费者消费,以确保数据的一致性和正确性。

当一个消费者组中的消费者宕机或者离线时,Kafka 会自动将该消费者组中的分区重新分配给其他消费者。这样,消费者组中的消费者可以动态地加入或退出,而不会影响数据的处理和一致性。

2:同一个分区可以被不同消费者组中的消费者消费

如果一个分区被多个消费者组中的消费者消费,那么每个消费者组中的消费者都可以独立地消费该分区中的消息,互不影响。这种情况下,Kafka会为每个消费者组维护一个消费进度,确保每个消费者组中的消费者都能够消费到自己未消费的消息。

 

标签:消费,消费者,分区,kafka,组中,Kafka
From: https://www.cnblogs.com/andy1234/p/18023787

相关文章

  • python pyKafka
    1importjson2importtraceback3fromdatetimeimportdatetime4importtime5frompykafkaimportKafkaClient6fromutilsimport*78#生成报文信息:process_message_event报文9defcreate_data():10data={11"mess......
  • Kafka 消费者
    1.Kafka消费方式pull(拉)模式:consumer采用从broker中主动拉取数据。Kafka采用这种方式。push(推)模式:Kafka没有采用这种方式,因为由broker决定消息发送速率,很难适应所有消费者的消费速率。例如推送的速度是50m/s,Consumer1、Consumer2就来不及处理消息。pull模式不足之处是,如果......
  • Kafka King 推荐一款漂亮、现代、实用的kafka客户端
    KafkaKing一个漂亮、现代、实用的kafka客户端,使用pythonflet、flutter构建。Github主页:https://github.com/Bronya0/Kafka-King下载:https://github.com/Bronya0/Kafka-King/releases功能清单查看集群节点列表创建主题(支持批量)、删除主题、支持根据消费者组统计每个topic......
  • Kafka 生产者
    1.生产者消息发送流程1.发送原理在消息发送的过程中,涉及到了两个线程——main线程和Sender线程。在main线程中创建了一个双端队列RecordAccumulator。main线程将消息发送给RecordAccumulator,Sender线程不断从RecordAccumulator中拉取消息发送到KafkaBroker。2.生......
  • Kafka 命令行操作
    1.Topic(主题)命令行操作1.查看Topic所有命令bin/kafka-topics.sh以下展示为最常使用的参数描述--bootstrap-server<String:servertoconnectto>连接的KafkaBroker主机名称和端口号--topic<String:topic>操作的topic名称--create创建Topic(主题)......
  • Kafka 3.6.1 集群安装与部署
    1.集群规划hadoop02(192.168.58.130)hadoop03(192.168.58.131)hadoop04(192.168.58.132)zookeeperzookeeperzookeeperkafkakafkakafka2.集群部署1.下载kafka二进制包https://kafka.apache.org/downloads2.解压mkdir/usr/kafkatar-zxvf/home/kafka_2......
  • Flink CDC实时同步PG数据库到Kafka
    一、安装规划操作系统服务器IP主机名硬件配置CentOS7.6192.168.80.131hadoop01内存:2GB,CPU:2核,硬盘:100GBCentOS7.6192.168.80.132hadoop02内存:2GB,CPU:2核,硬盘:100GBCentOS7.6192.168.80.133hadoop03内存:2GB,CPU:2核,硬盘:100GB......
  • SpringBoot集成Flink-CDC 采集PostgreSQL变更数据发布到Kafka
    (之前写了一个flink-cdc同步数据的博客,发布在某N,最近代码开源了,直接复制过来了,懒得重新写了,将就着看下吧)最近做的一个项目,使用的是pg数据库,公司没有成熟的DCD组件,为了实现数据变更消息发布的功能,我使用SpringBoot集成Flink-CDC采集PostgreSQL变更数据发布到Kafka。 一、业务......
  • kafka-oti
    尚硅谷大数据技术之Kafka(作者:尚硅谷研究院)版本:V4.0第1章Kafka概述1.1定义1.2消息队列目前企业中比较常见的消息队列产品主要有Kafka、ActiveMQ、RabbitMQ、RocketMQ等。在大数据场景主 要采用Kafka作为消息队列。在JavaEE开发中主要采用ActiveMQ、RabbitMQ、RocketMQ。......
  • kafka系列(一)【消息队列、Kafka的基本概念、Kafka的工作机制、Kafka可满足的需求、Kafk
    (kafka系列一)一、消息队列1.消息队列的来源在高并发的应用场景中,由于来不及同步处理请求,接收到的请求往往会发生阻塞。例如,大量的插入、更新请求同时到达数据库,这会导致行或表被锁住,最后会因为请求堆积过多而触发“连接数过多的异常”(TooManyConnections)错误。因此,在高......