`
nweiren
  • 浏览: 15842 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

004.Kafka消息存储和处理

阅读更多
Message存储:
    Topic有多个Partition,一个Partition对应一个log,一个log有多个Segment。
    每个Segment存储多个Message,Message的offset决定存储位置。
    Broker接收到Message会顺序追加到最后一个Segment中,当Segment的Message达到阈值时(大小或条数),
    Segment会将Message写入磁盘中,只有flush到磁盘中的消息才能够被订阅和消费,当Segment达到一定大小时将不会再写入数据,
    Broker会生成新的Segment。
    
    每个Partition在内存中对应一个index,记录每个Segment的第一个消息的offset。
 
Message处理:
    Producer生产Message并推(push)到Broker中,Consumer消费Message从Broker中拉(pull),并将消费过的消息的offset存储在Zookeeper中,在Consumer宕机重启时,能够从最近的offset开始继续消费Message。
    Producer将消息push到Broker上,Kafka采用的是at least once最少发送一次,发送失败将多次发生,达到阈值时,将不再发送;
    Consumer从Broker中pusll消息消费时,使用ack机制,并将消息的消费状态保持在zookeeper中。
    Kafka通过at least once和ack保证Message的事务性。
 
    Broker只负责消息存储,不负责消息消费状态维护,有Consumer主机维护。
    Broker对消息的删除,采用时间机制,默认保留7天,否则删除过期消息。
    
2
2
分享到:
评论

相关推荐

    kafka java 下载的jar

    生产者负责发布消息到主题(Topic),消费者则订阅并消费这些消息,而代理是Kafka集群中的节点,它们接收、存储和转发消息。 在Java中使用Kafka,我们通常会依赖于`kafka-clients`这个库,它包含了Java客户端API。...

    PyPI 官网下载 | streamsx.kafka-1.4.0.tar.gz

    Kafka的核心功能包括发布订阅消息系统、数据存储和数据消费。通过Python库streamsx.kafka,Python开发者可以轻松地在Python应用中集成Kafka的功能,例如发布消息到Kafka主题,从主题订阅并消费消息,以及进行更复杂...

    NLog.Kafka-master.zip

    通过将日志发送到Kafka,你可以轻松地收集、存储和处理来自多个源的日志信息,便于进行日志分析、监控和报警。 NLog.Kafka项目将这两者结合,使得开发者能够配置NLog,使其将日志直接写入Kafka主题。这通常涉及到在...

    C#_Kafka_Demo.rar

    3. 发布消息:使用`ProduceAsync`方法,指定主题和消息内容。 例如: ```csharp using KafkaNet; var broker = new Uri("localhost:9092"); var client = new KafkaClient(broker); var producer = new Producer...

    Learning.Apache.Kafka.2nd.Edition.2015.2.pdf

    - **压缩**:为了节省存储空间和网络带宽,Kafka支持对消息进行压缩。 - **时间戳**:Kafka消息自带时间戳,方便数据处理时按时间顺序排序。 - **流处理集成**:与Apache Flink、Spark Streaming等流处理引擎集成...

    Storm流计算项目:1号店电商实时数据分析系统-05.Kafka基础知识和集群搭建.pptx

    kafka 详解和实战案例09.S图表框架HighCharts介绍10.HBase快速入门11.基于HBase的Dao基类和实现类开发一12.基于HBase的Dao基类和实现类开发二13.项目1-地区销售额-需求分析和架构设计14.项目1-地区销售额-Spout融合...

    Storm流计算项目:1号店电商实时数据分析系统-06.Kafka基本操作和最优设置.pptx

    kafka 详解和实战案例09.S图表框架HighCharts介绍10.HBase快速入门11.基于HBase的Dao基类和实现类开发一12.基于HBase的Dao基类和实现类开发二13.项目1-地区销售额-需求分析和架构设计14.项目1-地区销售额-Spout融合...

    kafka代码基本例子

    1. **Broker**: Kafka集群中的服务器节点,负责存储和转发消息。 2. **Producer**: 生产者是应用程序,负责将消息发送到Kafka的特定主题。 3. **Consumer**: 消费者也是应用程序,从Kafka的主题中读取消息并进行处理...

    消息队列-kafka1

    Kafka 是一种高性能、可扩展的消息队列系统,广泛应用于实时数据处理、日志处理、流数据处理等领域。下面,我们将深入探讨 Kafka 消息队列技术的相关知识点。 1. Kafka 概念 Kafka 是一种基于发布订阅模式的消息...

    C# kafka demo

    1. **主题(Topics)**:Kafka中的数据以主题的形式存储,主题可以视为一种分类,用户可以发布和订阅特定主题的消息。 2. **分区(Partitions)**:每个主题可以被划分为多个分区,提供水平扩展性和冗余。分区内的...

    Learning.Apache.Kafka.2nd.Edition

    - **集成 Spark/Storm:** Kafka 也可以与 Spark 和 Storm 等流处理框架集成,实现更复杂的流处理逻辑。 **监控与运维:** - **监控指标:** Kafka 提供了大量的监控指标,可以帮助管理员了解系统的运行状态。 - **...

    springboot 整合消息队列kafka(kafka-with-springboot.rar)

    Apache Kafka是一个分布式流处理平台,它允许我们处理和存储大量实时数据。Spring Boot简化了Java应用程序的开发,尤其是微服务架构。结合两者,我们可以构建出强大的消息传递解决方案。 首先,我们需要在Spring ...

    Kafka the Definitive Guide 2nd Edition

    * 高可靠性:Kafka 能够提供高可靠性的消息处理和存储服务。 * 磁盘Retention:Kafka 能够提供磁盘Retention机制,用于存储和处理大量数据。 * 多生产者和消费者:Kafka 能够支持多生产者和消费者,满足复杂的数据...

    MbUtils.Kafka:Kafka消息产生和使用库

    MbUtils.Kafka是一个基于C#开发的库,专门用于处理Apache Kafka的消息生产和消费。Apache Kafka是一个分布式流处理平台,常用于构建实时数据管道和流应用。这个库为开发者提供了便捷的方式来与Kafka集群进行交互,...

    confluent-kafka-dotnet-1.4.3.zip

    Kafka,由LinkedIn开发并开源的分布式流处理平台,已成为大数据领域中的消息队列标准。Confluent Kafka作为其官方提供的商业支持版本,提供了丰富的功能和优化,包括更稳定的性能、全面的监控以及强大的连接器。在...

    Kafka+redis全解.pdf

    Kafka是业界广泛使用的分布式流处理平台,而Redis则是一款高性能的内存数据结构存储系统,常用于缓存、消息队列等场景。 Kafka是由LinkedIn开发并贡献给Apache软件基金会的开源项目,它的主要功能包括发布/订阅消息...

    Kafka详细课程讲义

    1. **Broker**: Kafka集群中的服务器节点,负责存储和处理消息。 2. **Topic**: 消息的分类,可以理解为数据库中的表。 3. **Partition**: 为了提高并行处理能力,每个主题被分为多个分区,每个分区在不同的broker上...

    kafka 发送和接收消息-Java版

    在本文中,我们将深入探讨如何使用Java来发送和接收消息到Apache Kafka,这是一个流行的分布式流处理平台。Apache Kafka被广泛用于构建实时数据管道和流应用,因为它提供了高吞吐量、低延迟的消息传递能力。 首先,...

Global site tag (gtag.js) - Google Analytics