kafka入门(二)——kafka的逻辑结构

简介: 一,组成部分概要           Producer:消息生产者          Consumer:消息消费者          Topic:特指kafka处理的消息源的不同分类          Partition:topic物理上的分组,一个topic可以分为多个partition,每个partition是一个有序的队列。





一,组成部分概要


           Producer:消息生产者

          Consumer:消息消费者

          Topic:特指kafka处理的消息源的不同分类

          Partition:topic物理上的分组,一个topic可以分为多个partition,每个partition是一个有序的队列。partition中的每条消息都会被分配一个有序的id(offset)

          Message:消息,是通信的基本单位,每个 producer 可以向一个topic(主题)发布一些消息

          Broker:缓存代理,Kafa 集群中的一台或多台服务器统称为 broker

          Consumer Group: 消费者组,可以并行消费Topic中partition的消息

          Producers:消息和数据生产者,向Kafka 的一个 topic 发布消息的过程叫做producers。

          Consumers:消息和数据消费者,订阅topics 并处理其发布的消息的过程叫做 consumers。


二,kafka各个部分介绍       

 

    1,producers       


消息和数据生产者,向 Kafka 的一个 topic 发布消息的过程叫做producers

Producer将消息发布到指定的Topic,Producer也能决定将此消息归属于哪个partition;比如基于"round-robin"方式或者通过其他的一些算法等.


异步发送:

批量发送可以很有效的提高发送效率。Kafka producer的异步发送模式允许进行批量发送,先将消息缓存在内存中,然后一次请求批量发送出去。

  

    2,broker


Broker:缓存代理,Kafka集群中的一台或多台服务器统称为 broker

MessageBroker中通Log追加的方式进行持久化存储。并进行分区(patitions)

 

为了减少磁盘写入的次数,broker会将消息暂时buffer起来,当消息的个数(或尺寸)达到一定阀值时,flush到磁盘,这样减少了磁盘IO调用的次数。

 

        1,broker的无状态机制     


               1.  Broker没有副本机制,一旦broker宕机,该broker的消息将都不可用。

            2.  Broker不保存订阅者的状态,由订阅者自己保存。

            3. 无状态导致消息的删除成为难题(可能删除的消息正在被订阅),kafka采用基于时间的SLA(服务水平保证),消息保存一定时间(通常为7天)后会被删除。

            4.  消息订阅者可以rewind back到任意位置重新进行消费,当订阅者故障时,可以选择最小的offset(id)进行重新读取消费消息。


      3,message的组成  


Message消息:是通信的基本单位,每个 producer 可以向一个topic(主题)发布一些消息。

Kafka中的Message是以topic为基本单位组织的,不同的topic之间是相互独立的。每个topic又可以分成几个不同的partition(每个topic有几个partition是在创建topic时指定的),每个partition存储一部分Message。

 

partition中的每条Message包含了以下三个属性:

       offset        对应类型:long

       MessageSize        对应类型:int32

       data是message的具体内容


      4,partions组成      


kafka基于文件存储.通过分区,可以将日志内容分散到多个server上,来避免文件尺寸达到单机磁盘的上限,每个partiton都会被当前server(kafka实例)保存;

 

可以将一个topic切分多任意多个partitions,来消息保存/消费的效率.

 

越多的partitions意味着可以容纳更多的consumer,有效提升并发消费的能力.


     5,consumers


消息和数据消费者,订阅 topics 并处理其发布的消息的过程叫做 consumers

 

kafka,我们 可以认为一个group是一个“订阅者”,一个Topic中的每个partions,只会被一个“订阅者”中的一个consumer消费,不过一个 consumer可以消费多个partitions中的消息(消费者数据小于Partions的数量时)

 

注: kafka的设计原理决定,对于一个topic,同一个group中不能有多于partitions个数的consumer同时消费,否则将意味着某些consumer将无法得到消息.

 

     


   

        


                

 

目录
相关文章
|
6天前
|
消息中间件 Java Kafka
kafka入门demo
kafka入门demo
36 0
|
8月前
|
消息中间件 监控 关系型数据库
【Kafka系列】(一)Kafka入门(下)
【Kafka系列】(一)Kafka入门(下)
|
6天前
|
消息中间件 分布式计算 Kafka
SparkStreaming(SparkStreaming概述、入门、Kafka数据源、DStream转换、输出、关闭)
SparkStreaming(SparkStreaming概述、入门、Kafka数据源、DStream转换、输出、关闭)(一)
|
6天前
|
消息中间件 Java Kafka
Kafka【环境搭建 01】kafka_2.12-2.6.0 单机版安装+参数配置及说明+添加到service服务+开机启动配置+验证+chkconfig配置说明(一篇入门kafka)
【2月更文挑战第19天】Kafka【环境搭建 01】kafka_2.12-2.6.0 单机版安装+参数配置及说明+添加到service服务+开机启动配置+验证+chkconfig配置说明(一篇入门kafka)
67 1
|
6天前
|
消息中间件 存储 分布式计算
Apache Kafka-初体验Kafka(01)-入门整体认识kafka
Apache Kafka-初体验Kafka(01)-入门整体认识kafka
44 0
|
6天前
|
消息中间件 算法 Kafka
Kafka入门,这一篇就够了(安装,topic,生产者,消费者)
Kafka入门,这一篇就够了(安装,topic,生产者,消费者)
141 0
|
8月前
|
消息中间件 存储 Kafka
(四)kafka从入门到精通之安装教程
Kafka是一个高性能、低延迟、分布式的分布式数据库,可以在分布式环境中实现数据的实时同步和分发。Zookeeper是一种开源的分布式数据存储系统,它可以在分布式环境中存储和管理数据库中的数据。它的主要作用是实现数据的实时同步和分发,可以用于实现分布式数据库、分布式文件系统、分布式日志系统等。Zookeeper的设计目标是高可用性、高性能、低延迟,它支持多种客户端协议,包括TCP和HTTP,可以方便地与其他分布式系统进行集成。
102 0
|
8月前
|
消息中间件 传感器 Kafka
(三)kafka从入门到精通之使用场景
Kafka 是一种流处理平台,主要用于处理大量数据流,如实时事件、日志文件和传感器数据等。Kafka的目的是实现高吞吐量、低延迟和高可用性的数据处理。Kafka提供了一个高度可扩展的架构,可以轻松地添加和删除节点,并且能够处理数百亿条消息/分区。Kafka的消息可以容错,即使某个节点失败,消息也会在集群中的其他节点上得到处理。总的来说,Kafka 是一个非常强大的数据处理平台,可以用于实时数据处理、日志文件处理、传感器数据处理和流处理等场景。
66 0
|
8月前
|
消息中间件 存储 Java
【Kafka系列】(一)Kafka入门(上)
【Kafka系列】(一)Kafka入门
|
9月前
|
消息中间件 存储 分布式计算
Spark学习---6、SparkStreaming(SparkStreaming概述、入门、Kafka数据源、DStream转换、输出、关闭)(二)
Spark学习---6、SparkStreaming(SparkStreaming概述、入门、Kafka数据源、DStream转换、输出、关闭)(二)

热门文章

最新文章