activeMQ 的源码分析 -开篇 以前对JMS 尤其是activeMQ 不了解,一看到什么地方需要使用消息中间件,就比较反感
主要原因是感觉JMS 的实现都比较复杂,怕在真实使用过程中出现什么问题时会比较被动
所以,我们基本上是自己写类似的消息中间件,当然功能非常简单
但其实我们自己写出来的中间件,随着功能的不断增加、人员和时间的种种问题,导致最终我们自己做出来的所谓消息中间件越来越不能维护
在吸取了一次一次这种重复发明"轮子"的事情中,我们觉得也许一开始就采用成熟开源的产品也许是条更好的方式
感觉到现在或将来我们对JMS 的使用会更加深入,为了适应这种的需要,作为软件研发人员,需要对在我们工作中占有重要地位的开源产品有源代码级别的熟悉,尤其对我们这些英语不太好的,因为目前用的多的开源产品基本上是以英语作为基础的,那么我们想要提交一个 bug 或讨论一个什么用法的时候,就比较被动,而且眼巴巴的等着其他人来解决,自己一点都使不上劲的感觉真的很不舒服
我们选择 activeMQ 来分析它的核心架构、源代码,就是希望能尽量少的发生上面的情况,尤其在我们分析activeMQ 的过程中,发现其源代码中确实存在不少小问题
消息中间件在许多项目或产品中占有非常重要的地位,虽然我们目前还不是activeMQ 的代码提交人员,但希望通过对activeMQ 的源码分析这种方式,同样为使用activeMQ 的同行们提供一点帮助,也算是间接为开源做点事情
在后面的一系列文章中,我们将主要从如下几个方面来分析: 一、activeMQ 的核心线程的功能和生命周期 二、消息存储的kaha 实现的分析 三、消息队列(Queue)实现的分析 作为开篇,首先我们非常尊重 activeMQ 的所有 committer,它是个不错的软件作品,我们的分析是基于 5
1 版本的代码,就象任何事情一样,尤其是