首页 > 其他分享 >Kafka - 不仅是消息引擎,还是分布式流处理平台

Kafka - 不仅是消息引擎,还是分布式流处理平台

时间:2023-08-29 10:47:56浏览次数:63  
标签:框架 处理 语义 Kafka 正确性 引擎 实现 分布式

 

如果你通读全篇文字但只能记住一句话,我希望你记住的就是这句

Apache Kafka 是消息引擎系统,也是一个分布式流处理平台(Distributed Streaming Platform)

 

作为流处理平台,Kafka 与其他主流大数据流式计算框架相比,优势在哪里呢?我能想到的有两点。

第一点是更容易实现端到端的正确性(Correctness)。Google 大神 Tyler 曾经说过,流处理要最终替代它的“兄弟”批处理需要具备两点核心优势:要实现正确性和提供能够推导时间的工具。实现正确性是流处理能够匹敌批处理的基石。正确性一直是批处理的强项,而实现正确性的基石则是要求框架能提供精确一次处理语义,即处理一条消息有且只有一次机会能够影响系统状态。目前主流的大数据流处理框架都宣称实现了精确一次处理语义,但这是有限定条件的,即它们只能实现框架内的精确一次处理语义,无法实现端到端的。这是为什么呢?因为当这些框架与外部消息引擎系统结合使用时,它们无法影响到外部系统的处理语义,所以如果你搭建了一套环境使得 Spark 或 Flink 从 Kafka 读取消息之后进行有状态的数据计算,最后再写回 Kafka,那么你只能保证在 Spark 或 Flink 内部,这条消息对于状态的影响只有一次。但是计算结果有可能多次写入到 Kafka,因为它们不能控制 Kafka 的语义处理。相反地,Kafka 则不是这样,因为所有的数据流转和计算都在 Kafka 内部完成,故 Kafka 可以实现端到端的精确一次处理语义。

 

第二点是它自己对于流式计算的定位。官网上明确标识 Kafka Streams 是一个用于搭建实时流处理的客户端库而非是一个完整的功能系统。这就是说,你不能期望着 Kafka 提供类似于集群调度、弹性部署等开箱即用的运维特性,你需要自己选择适合的工具或系统来帮助 Kafka 流处理应用实现这些功能。

标签:框架,处理,语义,Kafka,正确性,引擎,实现,分布式
From: https://www.cnblogs.com/frankcui/p/17664147.html

相关文章

  • Kafka - 为什么 Kafka 不像 MySQL 那样允许追随者副本对外提供读服务?
    几个原因:1,kafka的分区已经让读是从多个broker读从而负载均衡,不是MySQL的主从,压力都在主上;2,kafka保存的数据和数据库的性质有实质的区别就是数据具有消费的概念,是流数据,kafka是消息队列,所以消费需要位移,而数据库是实体数据不存在这个概念,如果从kafka的follower读,消费端offset控制......
  • kafka的下载和了解
    可以登录Apachekafka官方下载https://kafka.apache.org/downloads.html下载Scala2.13 -kafka_2.13-3.3.1.tgz(asc,sha512)官方推荐下载scala2.13版本的。kafka作为一个分布式流平台,有哪些关键的能力?发布和订阅消息(流),在这方面,它类似于一个消息队列。以容错(故障转......
  • 读kafka生产端源码,窥kafka设计之道(下)
    背景在上一篇文章《读kafka生产端源码,窥kafka设计之道(上)》留下了kafka设计上比较优秀的一个点;内存的循环使用。本篇文章准备盘盘它。好奇为什么kafka减少发送消息时向JVM频繁申请内存,就可以降低JVMGC的执行次数?我们知道网络上传输的都是二进制数据;而在java中想通过socke网络套接......
  • SpringBoot整合kafka配置多个kafka配置
     SpringBoot整合kafka的简单应用及配置说明(包含账号密码配置)、Kerberos证书连接方式:https://www.cnblogs.com/pxblog/p/14821853.html 依赖<dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactI......
  • Innodb引擎中B+树一般有几层?能容纳多少数据量?
    1、页在MySQL中InnoDB存储引擎的最小存储单元是页(大小默认是16k,可通过参数设置)。页可用于存放B+树叶节点数据,也可用于存放B+树非叶节点的“键+指针”(也就是路径节点)。在查找数据时一次页的查找代表一次IO,一般B+树高大约为1~3层,所以通过主键索引查询通常只需要1~3次IO......
  • Lucene:基于Java的全文检索引擎简介
    Lucene是一个基于Java的全文索引工具包。基于Java的全文索引引擎Lucene简介:关于作者和Lucene的历史全文检索的实现:Luene全文索引和数据库索引的比较中文切分词机制简介:基于词库和自动切分词算法的比较具体的安装和使用简介:系统结构介绍和演示HackingLucene:简化的查询分析器,删......
  • 企业新道路怎么走?火山引擎AB测试助力决策选择
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群乐刻是一家创立8年的企业,除了消费者熟悉的乐刻健身房可办月卡、24小时营业等,其还有比外界了解更多元的业务。目前,乐刻已在24个城市开出超1200家门店,注册会员数突破800万人,拥有乐刻健身、FEELINGME......
  • 企业新道路怎么走?火山引擎AB测试助力决策选择
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 乐刻是一家创立8年的企业,除了消费者熟悉的乐刻健身房可办月卡、24小时营业等,其还有比外界了解更多元的业务。目前,乐刻已在24个城市开出超1200家门店,注册会员数突破800万人,拥有乐刻健......
  • kafka笔记
    1、kafkabroker是kafka的节点信息,相当于服务器节点信息。2、kafka的作用是在业务高峰时起到削峰的作用、同时解除生产者和消费者的耦合作用让生产者不再强关联。3、kafka可以分为生产者和消费者单topic模式,生产者生产数据后消费者就会删除数据kafka可以分为多topic模式,多to......
  • 智定义、易调整,火山引擎DataLeap助力企业轻松实现全流程值班管理
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群近日,火山引擎大数据研发治理套件DataLeap全新上线值班管理模块,企业可通过该模块体系化智能化创建值班计划、管理值班人员,适用于运维排班、值班提醒、计划管理、监控报警等实际应用场景。值班工作......