0 引言

最近找了许多 RocketMQ 的资料,以为会很齐全,但翻了一下市面上的资料,包括极客时间上的消息队列课程、阿里云的文档以及网上零零散散的博文,总觉得有些意犹未尽,还是觉得再翻翻源码,自己消化整理一下理解会更透彻。这种时候就觉得有些贪心,恨不得阅尽天下书。

1 从 Netfix 聊起

程序员男生居多,应该很多人爱看美剧,应该都或多或少听过Netfix 。Netfix 在美国或者全球来说都算是最优秀的视频点播公司,在对外提供视频播放的海量业务中,自然也催生了内部极为优秀的技术。这次要分享的 Eureka 也是他们的社区贡献的。

工作中 redis 分布式锁和 zk 分布式锁都用,这篇文章想深入了解一下 zk 分布式锁的使用以及底层源码,目前业界主流的客户端是 curator,本文也准备以 curator 做为客户端。我选用的是最新的4.3.0版本,可能不同版本有些许不同。

这是一篇旧文,部分写在2018年,我从百度云的一个文件夹中翻了出来,附图和说明重新整理了一下。文中大多数图都是使用 draw.io 画的。

本文主要介绍了 JVM 的常用参数,并详细分析了YoungGC 日志.

本文是一篇比较散的总结,通过一系列的概念,将 MySQL 核心原理梳理出来,看文章的时候,我可以在脑海里面过一遍,速览并复习。

ZooKeeper 应该是一个比较常见的开源工具,加上与分布式系统渊源很深,我们其实可以“望文生义”,大致猜测一下 ZooKeeper 的作用,因为 ZooKeeper 的英文直译是“动物园管理员”,动物园里的动物就像分布式系统里的各个子系统一样,混乱且难以管理,所以 ZooKeeper 大概就是拿来管理分布式系统的,让其可控可用。

消息队列中,最熟悉的应该就是 RocketMQ 了,Kafka 和 RabbitMQ 都不是用 Java 写的,深入研究的话,时间耗费有点大,准备先熟悉透了 RocketMQ 之后再去研究 Kafka。本文很多内容其实都参照了官方文档,有兴趣的读者也可以通读一遍官方文档

日常刷题,不能断

Once you understand the design patterns and have had an "Aha!" (and not just a "Huh?") experience with them, you won't ever think about object-oriented design in the same way. You'll have insights that can make your own designs more flexible,
modular, reusable, and understandable—which is why you're interested in object-oriented technology in the first place, right? —— GOF