HornetQ学习系列(2)

今天研究下HornetQ的整体架构,首先谈谈核心架构。

问题1:核心架构涉及哪些要点?


要点:

1)设计HornetQ的时候,对外部的jar包依赖很低;

i>HornetQ的核心有一组POJO构成,关于什么是POJO就不展开讲了,可以看下这个博客:http://www.cnblogs.com/xjyh/p/4335075.html

ii>HornetQ的核心只用了一个外部依赖netty.jar(一个处理Socket的东东),HornetQ使用了其中一些用于缓冲的类

优点:依赖性小了,就可以很容易嵌入诸如Jboss,Spring等其他的应用中。

2)持久化这块,HornetQ用自己的日志系统来做,不同于普通的数据库方式,这种方式比数据库这种传统模式性能更高

HornetQ提供了两套API供客户端调用

1)核心API,这个API可以访问Hornet的所有功能;

2)JMS API,JMS API实际上就是封装了一下核心API,使其满足JMS规范

note:HornetQ的内核不包括JMS,Hornet服务器只接收核心API的访问,JMS格式的消息在传送到网络前会被转换成核心API.

HornetQ学习系列(2)_第1张图片

问题2:HortnetQ的两种部署方式架构?


1)集成Hornet到JEE应用服务器中

要点:

i>HornetQ和JEE应用服务器的所有通信,都通过JCA adaptor

ii>不允许EJB和HornetQ直接通信

HornetQ学习系列(2)_第2张图片

2)HornetQ作为独立的Server

要点:

i>HornetQ采用Jboss Microcontainer来引导并实例化服务,并保证模块间的依赖关系

ii>独立运行时,HornetQ服务器包括3个部分,核心服务器 + JMS服务 + JNDI服务

JMS服务:部署配置文件hornetq-jms.xml中的JMS Queue,Topic和ConnectionFactory实例 +   简单的管理接口

JNDI服务:JMS需要通过JNDI获得Queue,Topic和ConnectionFactory实例

note:想了解JNDI的可以参考下这个博客http://blog.csdn.net/zhaosg198312/article/details/3979435

HornetQ学习系列(2)_第3张图片

今天先到这儿,明天继续^_^

HornetQ学习系列(2)_第4张图片

你可能感兴趣的:(HornetQ学习系列(2))