[ARTS-Share]OutOfMemory 的 Kafka 学习笔记 (1)
背景
Kafka 是 Apache 的顶级消息中间件项目,因为强大的处理能力,被广泛应用于大数据处理和日志采集等领域,发展的前景非常好。
我希望通过对 Kafka 的学习,深入了解流式数据处理的基本原理,为深入大数据领域的工作奠定基础。
同时也希望能够在金融业务处理中借鉴或引入相关思想和技术。
目标
• 理解 Kafka 的原理、架构和关键处理机制
• 掌握构建、部署和管理 Kafka 集群的技术
• 掌握 Kafka 的参数配置和应用编程
• 熟悉 Kafka 关键处理模块的源码
• 为 Kafka 开源项目贡献力量
计划
• 每周至少两个番茄投入
• 先学习了解 Kafka 官方文档,了解 Kafka 的基本概念
• 搭建 Kafka 集群
• 学习 Kafka 集群管理和基本功能
• 学习 Kafka 参数配置和应用编程
• 制定学习 Kafka 源码想要了解的问题,并不断完善
• 从 Kafka 的核心功能入手,理解源码的结构和主要逻辑
• 搭建 Kafka 编译环境,编译、构建 Kafka 程序
• 尝试重现和调试 Kafka 开源项目的 issue
官方文档学习
官方网站: kafka.apache.org/
Kafka 的核心能力
• 高吞吐
使用一组集群机器,可以以达到网络限制的吞吐处理消息,时延低至 2ms
• 灵活扩展
生产集群可以扩展至上千 broker,每天处理万亿级消息、pb 级数据、数十万分区,可弹性伸缩的存储和处理能力
• 永久性存储
将数据流存储在分布式的、持久的、容错的集群中
• 高可用
将集群伸展到多个可用的区域,或可连接多个地理分隔的集群
introduction video
跟随官网指引观看了一个 Kafka 的 introduction 视频,提到了几个核心要点:
• Kafka 描述事件而不是描述对象,事件以 log 的方式被永久性存储
• Kafka 将一系列事件 log 描述为一个 topic,应用程序可以产生和消费 topic 中的事件记录
• Kafka 可以应用于将宏服务拆分为相互独立的微服务架构
• Kafka connect 工具可以连接已有系统的数据库,将数据导入 Kafka,提供给其他应用程序消费
• Kafka 提供 join 聚合、过滤 topic 数据的能力,应用程序通过 steam api 操作
Apache Kafka 定位为事件流式处理平台,流式处理就像是人类身体的神经系统,一个很形象的比喻
• To publish (write) and subscribe to (read) streams of events, including continuous import/export of your data from other systems.
• To store streams of events durably and reliably for as long as you want.
• To process streams of events as they occur or retrospectively.
版权声明: 本文为 InfoQ 作者【OutOfMemory1024】的原创文章。
原文链接:【http://xie.infoq.cn/article/a1bb5fa09dabb54eaaa995e74】。文章转载请联系作者。
评论