关于JBOSS消息

关于JBOSS消息


HornetQ是个开源的社区项目,用于构建多协议、嵌入式、高性能、集群及异步的消息系统。HornetQ既能用于小型应用,也能用于大规模的企业消息系统中。

在HornetQ最初的声明中,JBoss解释了HornetQ与JBoss Messaging 2.0之间的关系:

在过去几年的开发中,HornetQ代码基始终叫做JBoss Messaging 2.0,因此我们决定将JBoss Messaging 2.0改名为HornetQ,同时将其分离成独立项目,因为它与JBoss Messaging 1.x在很多地方都已经不同了,我们可不想将这两个完全不同的系统混为一谈。HornetQ的大部分代码都与JBoss Messaging 1.x大相径庭了。那么,现在的JBoss Messaging又怎么样了呢?JBoss Messaging 1.x仍旧处在JBoss Messaging之下,同时该项目目前仅处在维护模式下,新的开发工作都在HornetQ项目上进行。

HornetQ既可以独立的消息服务器的形式运行,也可以集成到JBoss应用服务器中:

HornetQ完全不依赖于任何JBoss应用服务器组件。事实上,除了JDK和Netty之外,HornetQ核心并不依赖于任何其他的程序库。我们可以轻松将其集成到JBoss应用服务器中以作为JMS提供源,同时也可以在JBoss应用服务器之外以独立的消息服务器的形式运行,功能上没有任何损失,甚至还可以在IoC框架(如Spring或Google Guice)中对其进行实例化。除此以外,还可以将HornetQ直接嵌入到自己的应用中。

JBoss说其定制的用于消息持久化的日志文件系统要比其竞争对手的使用关系数据库的解决方案快很多。

HornetQ通过其内置、高性能的日志文件系统对消息进行持久化。HornetQ并没有使用笨重、缓慢的关系数据库进行持久化。其使用的日志文件系统会自动检测HornetQ是否运行在Linux上,如果是的话则通过本地代码层调用Linux Asynchronous IO(AIO)以提高性能。如果无法使用AIO则转而使用Java NIO,这样HornetQ就可以无缝运行在任何Java平台上了。

由于HornetQ并没有使用数据库进行持久化,因此之前JBoss Messaging产品的用户如果想要对现有的queue进行移植则需要使用JMS Bridge:

如果想要移植queue或是topic数据,我推荐使用JMS Bridge获取老服务器中的消息并将其发到新服务器上去。这种技术适用于任何两个兼容的JMS provider。

HornetQ将作为JBoss Application Server 6中的默认JMS provider,同时JBoss希望通过实现一套REST风格的API以在云中使用HornetQ 2.1,进而达到协同处理消息的目的:

为消息定义一个RESTful接口,这样就可以通过普通的HTTP访问了。REST很可能会成为事实上的云接口风格标准。对我们来说,要想实现云中的消息provider,REST消息接口非常关键。RESTful接口将会成为REST-*项目中REST消息规范的一个实现。

项目wiki上列出了长长的2.0.0.GA特性列表,读者不妨移步一观。

HornetQ基于Apache Software License v2.0,同时Red Hat计划在不远的将来把其作为JBoss Enterprise Application Platform订阅的组成部分。

关于 HornetQ 的中文文档在http://hornetq.sourceforge.net/docs/hornetq-2.1.0.CR1/user-manual/zh/html/index.html

你可能感兴趣的:(jboss)