File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 2727 </a >
2828</p >
2929
30- Java流行框架源码分析 ,学习以及总结。项目持续更新中,不建议直接Fork,欢迎star、watch 。
30+ Java相关流行框架源码分析 ,学习以及总结,项目持续更新中 。
3131
32- 对于框架底层源码的学习,需要反复、认真思考,并做到温故而知新,这样才能将底层原理吸收得更加牢固。
33-
34- 框架包括:
32+ 框架或者源码包括:
3533
3634✅ JDK源码
3735
@@ -59,14 +57,11 @@ Java流行框架源码分析,学习以及总结。项目持续更新中,不
5957
6058> 为什么要分析、学习源码?
6159
62- 学习一个框架的源码,不仅在实际使用时如果出现问题,可以快速定位出问题,找到问题原因并解决,同时还可以学习到框架的架构思想以与设计模式。当然,学习框架底层源码还可以提升我们自身的水平,在大厂面试时能够在众多面试者中脱颖而出。因此学习框架虽然枯燥乏味,但罗马并非一日建成的,所以平时之余就要多学习框架底层源码,
63- 这样在用到的时候就能游刃有余 。
60+ 学习框架源码不仅能帮助我们在实际问题出现时快速定位问题、理解根因并高效解决,还能深入掌握框架的整体架构设计思路与核心设计模式,从而提升自身的系统设计能力与架构思维。
61+ 同时,通过学习优秀开源框架的底层实现,可以不断强化对复杂系统拆分、模块协作以及性能优化的理解,这对于个人技术能力的长期成长至关重要。因此,源码学习虽然过程相对枯燥,但这是提升架构设计能力的必经路径。只有持续积累,才能在实际系统设计与工程实践中做到真正的“游刃有余” 。
6462
6563# 目录
6664
67- - 项目导入
68- 将整个JavaSourceCodeLearning导入IDEA中,然后选中项目pom.xml文件右键,open as maven project然后等待maven下载相应jar包即可。
69-
7065- JDK源码学习
7166 - JDK版本:1.8.0_77
7267 - [ 深入学习String源码与底层(一)] ( https://github.com/coderbruis/JavaSourceLearning/blob/master/note/JDK/%E6%B7%B1%E5%85%A5%E5%AD%A6%E4%B9%A0String%E6%BA%90%E7%A0%81%E4%B8%8E%E5%BA%95%E5%B1%82%EF%BC%88%E4%B8%80%EF%BC%89.md )
Original file line number Diff line number Diff line change 11当前分析版本是kafka最新版本 4.2(版本随时变化,最新分析代码请关注仓库:[ https://github.com/coderbruis/kafka ] ( https://github.com/coderbruis/kafka ) ** <font style =" color :#DF2A3F ;" >source_code_analysis分支</font >** ,底层原理持续更新)
22
33# kafka服务端核心逻辑
4- 目前最新版本kafka已经抛弃了Zookeeper,而是自己维护元数据日志,存放在内部 topic __ cluster_metadata。
4+ 目前最新版本kafka已经抛弃了Zookeeper,而是自己维护元数据日志,存放在内部 topic: __ cluster_metadata。
55
66如果使用默认的配置方式 config/server.properties启动:
77
@@ -26,7 +26,7 @@ bin/kafka-server-start.sh
2626配置方式不同,启动链路不同:
2727
2828``` java
29- rocess . roles= broker
29+ process . roles= broker
3030 ...
3131 KafkaRaftServer . startup()
3232 - > BrokerServer . startup()
@@ -52,7 +52,7 @@ process.roles=broker,controller
5252
5353****
5454
55- ** broker,controller部署方式适合本地开发。正式生产,适合独立 controller + 独立 broker ,大规模生产适合独立 controller quorum集群 + 独立 broker 集群。**
55+ ** broker,controller部署方式适合本地开发。正式生产环境,适合独立部署controller + 独立部署broker ,大规模生产适合独立 controller quorum集群 + 独立 broker 集群。**
5656
5757## Kafka.scala
5858Kafka.scala中main()是 Kafka broker 进程的 JVM 入口,它本身不做具体 broker 组件初始化,核心作用是把进程启动流程串起来,源码如下:
@@ -150,7 +150,7 @@ socketServer = new SocketServer(config,
150150val enableRequestProcessingFuture = socketServer. enableRequestProcessing(authorizerFutures)
151151```
152152
153- 创建网络入口 。此时准备 acceptor 和端口,真正处理请求会延后开启。enableRequestProcessing()开启 SocketServer 请求处理。
153+ SocketServer 用于创建网络入口 。此时准备 acceptor 和端口,真正处理请求会延后开启。enableRequestProcessing()开启 SocketServer 请求处理。
154154
155155
156156
You can’t perform that action at this time.
0 commit comments