Giter VIP home page Giter VIP logo

kafka-notes's Introduction

kafka-notes

kafka的学习笔记 https://github.com/pierre94/kafka-notes

16年初识Kafka时,我接触的还是0.8.x版本。不知不觉Kafka已经发展到目前的2.x.x版本。 笔者也见证了 Kafka的蜕变,比如

  • 旧版客户端的淘汰
  • 新版客户端的设计
  • Kafka 控制器的迭代优化
  • 私有协议的变更
  • 事务功能的引入 ……

Kafka从昔日的新星逐渐走向成熟,再到王者地位不可撼动,这期间有太多的故事可讲,有太多知识可以学习。

源码阅读

在阅读《深入理解kafka:核心设计与实现》这本书的时候,愈发对kafka的源码和内部实现感到兴趣。按照书中大纲和kafka社区相关资料,启动对现网主流版本2.2.0的源码进行深入理解。

一、核心设计**

https://kafka.apache.org/documentation/#design

0、 Motivation-设计初衷

  • 高吞吐
  • 低时延

1、Persistence-持久化

2、Efficiency-效率/性能

3、producer相关设计与实现

  • producer流程全流程概述

4、consumer相关设计与实现

5、消息传递语义

6、副本机制

7、日志Compaction

8、Quotas-配额

二、关键实现

1、网络层

2、消息层

3、消息格式

  • 日志格式的演变

4、日志

  • 日志存储逻辑

5、分布式

其他

  • 间轮设计与实现分析

  • 延时操作设计与实现分析

  • 控制器设计与实现分析 | 难点

  • 副本相关逻辑

    • 副本基本原理
    • 副本同步机制与可靠性分析

其他

事务目前没有大规模使用到,优先级低。Kafka 的事务可以看作Kafka 中最难的知识点之一!目前先写一下简单介绍,后续再补上源码级分析。

四、周边功能

  • console producer 与 consumer
  • kafka streams
  • kafka mirror
  • kafka connector

五、问题分析与解决

六、功能进阶

  • 过期消息
  • 延时队列
  • 消息路由

MISC

kafka平滑升级方案

参考资料

  • 《深入理解kafka:核心设计与实现》

微信公众号

更多文章与内容请关注:

kafka-notes's People

Contributors

pierre94 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

kafka-notes's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.