基于Hbase存储的分布式消息(IM)系统-JABase

 前段日子看了在highscalability.com上一篇介绍facebook消息系统的文章,一夜之后被无数个网站无数次的转载,现如今facebook的任何一个话题都会引起很多人的关注,但我对只对这文章里面没有说明的部分比较感兴趣,系统里是怎么获得即时消息的?PHP监听器?开启很多个监听器服务?推模式?拉模式?跟Twitter一样采用消息中间件?对此有了些疑问,期待日后有人能给出明确解答。
 
    这个叫JABase的 东东 能给我一些启示,JABase是应用在分布式IM系统中的中间件,可以支持大规模的集群环境的伸缩性架构,并采用Java语言来实现的,JABase是介于分布式数据存储(HBase/HDFS)和即时消息收发(Erlbase/XMPP Server)的一个中介体,JABase将XMPP Server中的收/发消息存放在HBase中,这点与facebook消息系统文章中提到的极为相似。另外提一下,JABase给出的方案中的IM消息服务器(XMPP Server) Erlbase是采用 Erlang 语言编写,有点像Twitter。

整个系统架构由HBase/HDFS、JABase、ErlBase 这3大部分组成,整体架构如图所示:

除了需要安装HBase和HDFS一些主要部件以外,还需要有以下一些组件支持:
   – ejabberd-2.0.3.tar.gz    (Erlang)
   – erlbase-1.0.tar.gz         (Erlang)
   – jabase-1.0.tar.gz           (Java)

对JABase项目的了解,结合目前采用的架构引发出2个的设想:
    1、XMPP与MQ 可扩展性的比较,有时间需要坐下来跟大家讨论一下。
    2、MQ的性能扩展 a)前端集成缓存 b)后端消息存储,看看这么加才对我们有真正的帮助。

你可能感兴趣的:(基于Hbase存储的分布式消息(IM)系统-JABase)