ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Kafka核心技术与实战——03 | Kafka只是消息引擎系统吗?

2020-04-27 11:55:42  阅读:215  来源: 互联网

标签:03 正确性 核心技术 系统 Kafka 处理 引擎 Apache


  • 从自上而下的角度去理解 Kafka
    • 竟然发现了很多之前学习过程中忽略掉的东西
    • 更特别地是,我发现这种学习方法能够帮助我维持较长时间的学习兴趣,不会阶段性地产生厌烦情绪
  • Apache Kafka 是消息引擎系统,也是一个分布式流处理平台
    • LinkedIn 最开始有强烈的数据强实时处理方面的需求,其内部的诸多子系统要执行多种类型的数据处理与分析,主要包括业务系统和应用程序性能监控
    • 以及用户行为数据处理等
  • 当时他们碰到的主要问题包括
    • 数据正确性不足。因为数据的收集主要采用轮询(Polling)的方式,如何确定轮询的间隔时间就变成了一个高度经验化的事情。虽然可以采用一些类似于启发式算法(Heuristic)来帮助评估间隔时间值,但一旦指定不当,必然会造成较大的数据偏差
    • 系统高度定制化,维护成本高。各个业务子系统都需要对接数据收集模块,引入了大量的定制开销和人工成本
  •  Kafka 社区将其清晰地定位为一个分布式、分区化且带备份功能的提交日志(Commit Log)服务
  • Kafka 在设计之初就旨在提供三个方面的特性:
    • 提供一套 API 实现生产者和消费者;
    • 降低网络传输和磁盘存储开销;
    • 实现高伸缩性架构
  • 正式推出了流处理组件 Kafka Streams,也正是从这个版本开始,Kafka 正式“变身”为分布式的流处理平台,而不仅仅是消息引擎系统了
    • 今天 Apache Kafka 是和 Apache Storm、Apache Spark 和 Apache Flink 同等级的实时流处理平台
  • Kafka 与其他主流大数据流式计算框架相比,优势在哪里呢?
    • 第一点是更容易实现端到端的正确性(Correctness)。
      • 流处理要最终替代它的“兄弟”批处理需要具备两点核心优势:要实现正确性和提供能够推导时间的工具。实现正确性是流处理能够匹敌批处理的基石
      • 实现正确性的基石则是要求框架能提供精确一次处理语义,即处理一条消息有且只有一次机会能够影响系统状态
      • 因为当这些框架 Spark 或 Flink 与外部消息引擎系统结合使用时,它们无法影响到外部系统的处理语义
      • Kafka 则不是这样,因为所有的数据流转和计算都在 Kafka 内部完成,故 Kafka 可以实现端到端的精确一次处理语义
    • 可能助力 Kafka 胜出的第二点是它自己对于流式计算的定位
      • Kafka Streams 是一个用于搭建实时流处理的客户端库而非是一个完整的功能系统
      • 你不能期望着 Kafka 提供类似于集群调度、弹性部署等开箱即用的运维特性,你需要自己选择适合的工具或系统来帮助 Kafka 流处理应用实现这些功能
      • 但毕竟这世界上还存在着很多中小企业,它们的流处理数据量并不巨大,逻辑也并不复杂,部署几台或十几台机器足以应付。在这样的需求之下,搭建重量级的完整性平台实在是“杀鸡焉用牛刀”
  • Apache Kafka 从一个优秀的消息引擎系统起家,逐渐演变成现在分布式的流处理平台。你不仅要熟练掌握它作为消息引擎系统的非凡特性及使用技巧,最好还要多了解下其流处理组件的设计与案例应用

标签:03,正确性,核心技术,系统,Kafka,处理,引擎,Apache
来源: https://www.cnblogs.com/minimalist/p/12785699.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有