OutOfMemory的Kafka学习笔记(1)

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.

微信扫一扫关注公众号

OutOfMemory的Kafka学习笔记(1)

https://www.wang7x.com/2021-01-16-leaning-kafka-1/

作者

Casey Wang

发布于

2021-01-16

更新于

2021-04-22

许可协议

评论