• 芥末小龙
    2019-08-12
    玥哥,以前带我的时候咋不提呢,如果知道早知道这样看源码,知道的原理多一些,我估计阿里P7就能过了。

    作者回复: 你没问呀

     8
     35
  • 陈珙
    2019-08-12
    老师在后续课程是否可以再开放一些”程序员史诗般必读文章”给我们学习下
    
     12
  • linqw
    2019-08-10
    学习完这篇写下自己的理解,老师有空帮忙看下哦
    1、在还没阅读开源项目代码之前,会先把Java的一些常用的源代码先看完,感觉所有的源代码都是这些基础的砖块叠加上去的,最近也在撸rocketmq源码,也是先把用到的一些其他框架先熟悉如netty、logger,然后看其官方文档,对整体的框架和基本的概念有比较感性的认知,再者写一些demo。然后先把rocketmq中的公共的模块的源代码先看,比如logger、loggappend、namesrv,如namesrv内部维护broker、cluster、topic、queue的路由信息,producer再发送消息前,需先将namesrv其broker的路由信息缓存到本地,为此需和namesrv维护长连接,定时的从namesrv获取新的路由信息,broker端需和namesrv为此常连接,broker定时的发送配置信息到namesrv,namesrv需开启定时任务将其超过时间没有收到心跳包的broker连接关闭。为了namesrv中的配置参数可以更改,可以从System中的properties中获取,也为了这些配置持久化也会在接收到配置参数时保存到文件中,namesrv需维护配置参数的设置获取,如发送消息前选择topic等,为了区分不同的命令,维护RequestProcessor,对接收到不同的RemotingCommand做不同的处理序列化和反序列化,参数检验等。很多开源框架都会做一个admin,便以实时的更改配置参数,实时的监控项目中的配置参数。
    2、打算先把并发包先分析完,然后开始分析下rocketmq,这个是自己分析的一些知识点https://juejin.im/user/5bd8718051882528382d8728/posts
    展开

    作者回复: 👍👍👍

     1
     8
  • 知非
    2019-08-10
    这篇文章,解决我很大的疑惑啊!自己看代码就是先找main,真尴尬。。
    
     7
  • 纯齐
    2019-08-12
    请教下,有什么好办法找出开源项目的“灵魂”?

    作者回复: 建议去从文档中找。

    如果这个项目是基于某个Paper的,一般文档中的显著位置都会标注。

    
     5
  • 南山
    2019-08-11
    读源码的习惯是喜欢按照一条主线来看,经常会被一些细节绕晕。多谢老师指路。
    后续就按照:灵魂->官方文档->问题&答案找答案->核心类结构图+流程图->原理细节文字步骤说明->点成线->线成网->实际应用(可遇不可求)->官方文档->灵魂
    多写总结,多思考知识点之间多关联,多动手,一切都是水到渠成的事儿~~~

    作者回复: 👍👍👍

    
     3
  • innocent
    2019-08-10
    您好,请问一下作为一个对Scala不是非常熟悉的Java程序员如何阅读Kafka的源码。

    作者回复: 花点儿时间学一下基础语法,特别是lambda,至少读懂源码就没什么问题了。

     1
     2
  • xfan
    2019-10-30
    我照着例子试了一下,有一个问题
    为什么kafka的不同的topic 的Leader可以不一样,这个Leader等同于分布式系统中的master节点吗

    作者回复: 你可以理解master和leader的含义是一样的。

    对于“为什么kafka的不同的topic 的Leader可以不一样”这个问题,我在《22 | Kafka和RocketMQ的消息复制实现的差异点在哪?》这节课中有专门讲到,你可以参考一下。

    
     1
  • 静水流深
    2019-10-30
    葵花宝典到手!
    
     1
  • Switch
    2019-10-13
    分析的RocketMQ Producer的发送流程。
    https://blog.csdn.net/q547550831/article/details/102483994
    
     1
  • godtrue
    2019-08-21
    这节直指痛点,之前阅读源码就是这样半途而废的。
    再启程,参考老师的建议
    1:先整体,再局部
    2:先英文,再中文
    3:先灵魂,再原理
    4:先文档,再源码
    5:阅读前先思考,带上问题和答案去验证,阅读完了,记得总结——流程图、时序图、文字描述
    6:我觉得还需要加上些基础,比如:数据结构、操作系统原理、计算机网络原理、设计模式等
    7:最重要的在于坚持,遇到困难还能继续前进
    展开
    
     1
  • 秦跃
    2019-08-19
    请问您提的问题对的入口如何快速定位?有时在main
    
     1
  • paradox
    2019-08-10
    带着问题看源码类似于监督学习,不带问题看源码类似于非监督学习,两者各有场景。碰到问题查源码是前者,没碰到问题想总结用后者。
    
     1
  • 进击的小明
    2020-02-02
    授人以渔 学习了 有了一些方向 :D
    
    
  • 汤小高
    2019-12-19
    带着问题阅读源代码,但是怎么快速定位每个问题对应的源代码入口?

    作者回复: 一般通过文档或者测试用例结合文件名去找。

    
    
  • 吧唧吧唧
    2019-11-16
    读mybatis源码先找"main"的sqlsessionfactory,读spring先找“main”classpathxmlapplicationcontext,是说别人两周读完mybatis,我花了几个月,并且效率低下。
    
    
  • 飞翔
    2019-11-03
    最简单的开源框架源码感觉非mybatis莫属,主体流程很简单,跟着debug一步步看就好了^_^
    
    
  • 饭粒
    2019-11-02
    入门文档上手,简单使用,溯源"灵魂”,带着问题和文档答案,印证的去看源码。
    
    
  • 鸠摩智
    2019-08-29
    最近在研究spring框架源码,看了这篇文章受益匪浅
    
    
  • 浅滩
    2019-08-29
    这个操作很溜
    
    
我们在线,来聊聊吧