写点什么

[ARTS-Share]OutOfMemory 的 Kafka 学习笔记 (1)

发布于: 2021 年 01 月 18 日
[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.


发布于: 2021 年 01 月 18 日阅读数: 22
用户头像

吃货开发者的探索 2014.08.16 加入

金融科技架构师

评论

发布
暂无评论
[ARTS-Share]OutOfMemory的Kafka学习笔记(1)