消息队列高手课
李玥
京东零售技术架构部资深架构师
立即订阅
8426 人已学习
课程目录
已完结 41 讲
0/4登录后,你可以任选4讲全文学习。
课前必读 (2讲)
开篇词 | 优秀的程序员,你的技术栈中不能只有“增删改查”
免费
预习 | 怎样更好地学习这门课?
基础篇 (8讲)
01 | 为什么需要消息队列?
02 | 该如何选择消息队列?
03 | 消息模型:主题和队列有什么区别?
04 | 如何利用事务消息实现分布式事务?
05 | 如何确保消息不会丢失?
06 | 如何处理消费过程中的重复消息?
07 | 消息积压了该如何处理?
08 | 答疑解惑(一) : 网关如何接收服务端的秒杀结果?
进阶篇 (21讲)
09 | 学习开源代码该如何入手?
10 | 如何使用异步设计提升系统性能?
11 | 如何实现高性能的异步网络传输?
12 | 序列化与反序列化:如何通过网络传输结构化的数据?
13 | 传输协议:应用程序之间对话的语言
14 | 内存管理:如何避免内存溢出和频繁的垃圾回收?
加餐 | JMQ的Broker是如何异步处理消息的?
15 | Kafka如何实现高性能IO?
16 | 缓存策略:如何使用缓存来减少磁盘IO?
17 | 如何正确使用锁保护共享数据,协调异步线程?
18 | 如何用硬件同步原语(CAS)替代锁?
19 | 数据压缩:时间换空间的游戏
20 | RocketMQ Producer源码分析:消息生产的实现过程
21 | Kafka Consumer源码分析:消息消费的实现过程
22 | Kafka和RocketMQ的消息复制实现的差异点在哪?
23 | RocketMQ客户端如何在集群中找到正确的节点?
24 | Kafka的协调服务ZooKeeper:实现分布式系统的“瑞士军刀”
25 | RocketMQ与Kafka中如何实现事务?
26 | MQTT协议:如何支持海量的在线IoT设备?
27 | Pulsar的存储计算分离设计:全新的消息队列设计思路
28 | 答疑解惑(二):我的100元哪儿去了?
案例篇 (7讲)
29 | 流计算与消息(一):通过Flink理解流计算的原理
30 | 流计算与消息(二):在流计算中使用Kafka链接计算任务
31 | 动手实现一个简单的RPC框架(一):原理和程序的结构
32 | 动手实现一个简单的RPC框架(二):通信与序列化
33 | 动手实现一个简单的RPC框架(三):客户端
34 | 动手实现一个简单的RPC框架(四):服务端
35 | 答疑解惑(三):主流消息队列都是如何存储消息的?
测试篇 (2讲)
期中测试丨10个消息队列热点问题自测
免费
期末测试 | 消息队列100分试卷等你来挑战!
结束语 (1讲)
结束语 | 程序员如何构建知识体系?
消息队列高手课
登录|注册

结束语 | 程序员如何构建知识体系?

李玥 2019-10-19
你好,我是李玥。
在课程即将结束的时候,我们不聊技术本身,我想坐下来,跟你聊聊怎么来构建个人的技术知识体系。
现在做技术的人普遍都有一种焦虑,相信你也或多或少有一点,焦虑什么呢?总是感觉,自己不懂的技术太多了。虽然你不停地去学习,拼命地扩充自己的技术栈,但是面对不断出现的新技术,学习的速度永远赶不上新技术发展的速度,就会感觉自己不会的东西越来越多,这其实就是一种技术焦虑。
焦虑的来源是什么?焦虑,其实是对某些不好的事情过度担心而产生的一种烦躁情绪。这种担心更多来源于“看不清”或者说是“未知”,人的本能就是对未知的事物会有莫名的恐惧。比如,我小时候考试考得不好,拿着成绩单回家的路上是最焦虑的时候,因为我不知道我爸妈看到成绩之后会不会给我一顿胖揍。成绩单交给爸妈之后,即使被揍了,也不再焦虑了,当然屁股痛是另外一回事儿。
对于技术焦虑来说,你所担心的“不好的事情”,其实就是担心自己技术成长跟不上技术环境的发展速度。就像一场赛跑,赛道是无数条路,所有人都在不同的路上拼命地往前跑,你不知道别人跑到哪儿了,也不知道还有多远才能终点,不焦虑才怪。解决焦虑的办法是,给你一个导航,你能看到自己处在什么位置,前面的路是什么样的,应该怎么来走,焦虑也就解除了。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《消息队列高手课》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(26)

  • 陈华应
    老师说的焦虑每个字都说到心坎里去了~
    自己一直在尝试不断建立完善自己的技能体系,但是鱿鱼头和鱿鱼须现在有点混在一起了,看完也有些想法去调整方向,以后有了正确的方向,剩下的就是坚持,努力~
    多谢老师!!!江湖再见~

    作者回复: 感谢!

    2019-10-19
    5
  • leslie
    三个月的学习一周不拉的学完了:从开始坚持到最后,开篇词的flag目标达到了,就剩下开始研究源码和动手测试和使用了;不断的实践和不断的重复去掌握这3个月的知识-学习一遍是肯定不够的。
           完课之前其实已经根据学习中的典型问题追加了新的学习内容-继续强化自己,直接导致这周时间不够用;不断的自我前进自我修复,记录下自己的典型弱点就补足。学习就是不断看清自己、超越自己、完善自己的路。为了完善自己程序的弱点,特意报了算法训练营,虽然很难,不过相信自己可以走到最后超越自己吧;只有这样才能更好的掌握和把课程中的思路落地。
          起点的方向不同,不过目标相同且坚持就能爬到向往的高度。最初就是为了实现flag的目标而不断的努力,虽然中间有少量的1-2堂的缺课,不过当周又全部补上了,三个月不知不觉就坚持下来了。当下课程的结束其实是新课程的起点,自己已经在开始新的路,希望2个月的训练营之后自己再反过来学习时可以看到不一样的高度并且在实践中领悟到不一样的东西。
            感谢老师3个月以来的辛勤教诲和付出:坚持每篇都写且回帖-谢谢;希望将来还能有机会看到老师的分享。

    作者回复: 感谢!

    2019-10-19
    3
  • Geek_Tien
    谢谢老师

    作者回复: 感谢!

    2019-10-19
    3
  • QQ怪
    谢谢老师,刚刚搞了个期末考试,才对了五道,还需要继续复盘,还继续加油,感谢老师这种复盘,又找到了上学的感觉,棒棒哒

    作者回复: 题目的难度还是有点儿大的,如果能全做对就很厉害了!

    2019-10-20
    1
    2
  • A9
    今年工作5年出头了,之前由于个人选择一些原因,一直在小公司或者和同学创业。作为一个后端,基本上参与过从需求到上线运维的所有工作(UI除外,么得美感)。今年7月刚到一家大一些的公司,打算在知识领域的纵向好好打磨自己。恰好遇到了消息队列这个课程,真的让我串联起了很多之前了解,但是却没有融汇在一起的知识。打算自己根据课程学到的知识,自己实现一个简单的却功能完善的消息队列,实现真正的融会贯通。老师能加一下我的微信吗,希望之后能够有机会和老师多多交流。微信:popsoda,感谢

    作者回复: 感谢!

    2019-10-19
    2
  • 二星球
    老师讲的非常好,没有学够,总感觉课程背后还有很多细节没讲完,意犹未尽啊,希望老师出本书囊括所有细节啊😀😄

    作者回复: 感谢!

    2019-10-19
    2
  • 啦啦啦

    作者回复: 感谢!

    2019-10-19
    2
  • 每天晒白牙
    感谢老师的陪伴,非常喜欢这个专栏,追完了不是目的,重要的是学会思想,真正理解,打算二刷,并把老师讲的rpc框架多写写,希望能和老师江湖相见

    作者回复: 感谢!

    2019-10-19
    2
  • 海罗沃德
    別看是最後一課,給力程度不亞於前面所有👍,雙11準備轉戰京東了
    2019-10-29
    1
  • 张德
    老师说的这个构建自己的技术体系的方式我本人是非常赞同的 我也是这么做的 现在还在web后端开发深耕 没有去炫耀所谓最火的 机器学习 谢谢老师的分享
    2019-10-21
    1
  • Hurt
    中间落了一些 补习上 然后二刷 大道至简 知易行难 加油💪
    2019-10-21
    1
  • 颖儿
    非常喜欢老师~中间落下很多课 一定要补上 会记住老师说的话~

    作者回复: 感谢!

    2019-10-19
    1
  • oscarwin
    授以鱼并授以渔,受益匪浅,感谢

    作者回复: 感谢!

    2019-10-19
    1
  • FATMAN89
    老师的课讲得很好,前些阵子屯了这门课,现在才有机会开始系统的学习,老师对某个概念总是能讲的很透彻。希望老师能出更多的像这样的课程。
    2019-12-10
  • 达文西
    哈哈, 这个"小鱿鱼"够形象的啊
    2019-11-27
  • 许童童
    勤勉之道无他,在有恒而已,愿你我共勉。
    2019-11-17
  • Geek_xiao
    老师好,最近使用rocketmq时,遇到了MQ的[BUG]doRebalabce, because pull is pause , so try to fix it的错误提示。阅读源码时发现是mq每20做一次重平衡时,方法pq.isPullExpired()会用系统当前时间与lastPullTimestamp比较,若大于120秒就会记录该错误提示。
    【问题1】请问lastPullTimestamp是每次拉取消息时才会更新时间戳吗。如果是的话,长时间没有需要消费的消息,那这个时间一直不会更新吗
    【问题2】这种情况有什么解决方案吗
    请老师指教。

    作者回复: 1. 你可以看一下,更新lastPullTimestamp的时机并不是拉取成功后才更新,而是发送拉取消息请求之前就更新。所以即使没有消息,也会更新这个时间。

    2. 只有一种情况不会更新这个时间,它在方法DefaultMQPushConsumerImpl#pullMessage更新lastPullTimestamp之前,判断了一下这个processQueue是否还可用(processQueue.isDropped()),如果不可用就直接返回了,不更新这个时间。

    3.造成客户端认为队列不可用的原因很多,比如拉到了错误的元数据等等,具体你得分析是什么原因。

    2019-11-15
  • 亚洲舞王.尼古拉斯赵四
    老师的这部专栏质量真的很高,一开始的时候看到进阶篇中讲的序列化,异步网络传输真的是很不理解,我学的不是消息系统吗?怎么扯到这些去了?但是仅仅三个月的时间,现在我回头去看当初的文章,就觉得和当时的感受不一样了,这种基础的架构学习,正好符合老师这篇文章中提到的,构建自己小鱿鱼的尖尖,真的是好多技术的底层都是相通的,以前只是使用过kafka,没有向下钻研他的原理,这三个月的研究期间,发现他的核心真的都是老师进阶篇讲到的这些东西,老师的课真棒

    作者回复: 感谢!看到你能有收获我也很开心。

    2019-11-06
  • Switch
    虽然慢了点,但总归是学完了。无论是源码的学习方式还是RPC框架的设计等等都是满满的干货。
    接下来就是完成学课程前立下的flag,掌握某一消息队列的源码(RocketMQ,掌握难度较kafka小,并且阅读方便)
    😁😁😁。多谢老师,江湖再见

    作者回复: 江湖再见!

    2019-11-05
  • windy
    很感谢老师的分享,有种醍醐灌顶的感觉
    2019-11-01
收起评论
26
返回
顶部