`
nanjingjiangbiao_T
  • 浏览: 2599681 次
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

JBoss HornetQ 2.0介绍

 
阅读更多

概述  

HornetQ是一个支持集群和多种协议,可嵌入、高性能的异步消息系统。HornetQ完全支持JMS,HornetQ不但支持JMS1.1 API同时也定义属于自己的消息API,这可以最大限度的提升HornetQ的性能和灵活性。在不久的将来更多的协议将被HornetQ支持。[1]

特点

  HornetQ拥有超高的性能,HornetQ在持久化消息方面的性能可以轻易的超于其它常见的非持久化消息引擎的性能。当然,HornetQ的非持久化消息的性能会表现的更好!
  HornetQ完全使用POJO,纯POJO的设计让HornetQ可以尽可能少的依赖第三方的包。从设计模式来说,HornetQ这样的设计入侵性也最小。HornetQ既可以独立运行,也可以与其它Java应用程序服务器集成使用。
  HornetQ拥有完善的错误处理机制,HornetQ提供服务器复制和故障自动转移功能,该功能可以消除消息丢失或多个重复信息导致服务器出错。
  HornetQ提供了灵活的集群功能,通过创建HornetQ集群,您可以享受到到消息的负载均衡带来的性能提升。您也可以通过集群,组成一个全球性的消息网络。您也可以灵活的配置消息路由。

  HornetQ拥有强大的管理功能。HornetQ提供了大量的管理API和监控服务器。它可以无缝的与应用程序服务器整合,并共同工作在一个HA环境中。[1]

去年夏天JBoss宣布将JBoss Messaging改弦易张为HornetQ,半年过去了,HornetQ的首个GA版也终于破茧而出了。

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订阅的组成部分

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics