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.
问题2:HortnetQ的两种部署方式架构?
1)集成Hornet到JEE应用服务器中
要点:
i>HornetQ和JEE应用服务器的所有通信,都通过JCA adaptor
ii>不允许EJB和HornetQ直接通信
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.****.net/zhaosg198312/article/details/3979435
今天先到这儿,明天继续^_^