概述
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订阅的组成部分
分享到:
相关推荐
JBoss Messaging 2.0
jboss Seam2.0 语境相关的组件_[满江红20080327](PDF+CHM双版本)
整理自jboss seam 中文站,压缩为chm格式,便于广大jboss seam爱好者阅读,所有版权归jboss seam中文站所有。
seam2相关的api,包括满江红翻译的中文文档,该文档经过处理,可以按照标题进行索引。
jboss-seam2.0文档.rar,希望大家能够喜欢,谢谢大家的支持,嘿嘿
Jboss_Seam_2.0中文手册
Apereo CAS 在 Tomcat 7 (JBoss EWS) 墨盒上运行。 它是什么? (中央身份验证服务)是一种用于 Web 的开源单点登录解决方案。 访问 CAS 的文档。 Web 应用程序是使用 Maven WAR Overlay Method 构建的,该方法...
jboss集群完整介绍,包括jboss相关知识。
HornetQ是JBoss社区所研发的开放源代码消息中间件;HornetQ是以Java 5 编写,因此只需要操作系统支持Java虚拟机,HornetQ便可运行。 支持Java消息服务 (JMS) 1.1 版本 集群 (Clustering) 支持庞大的消息(Message)...
该文档是对Hornetq英文文档的翻译,对于英文不好的同学,有很大的帮助。
jboss服务器实现集群的机制和部署方法
在MyEclipse中使用jboss服务器搭建Strutys2.0架构下的步骤,本文中引入工程请在:一个简单的Struts2框架(可直接导入)中下载,下载后可以直接导入
这个文档描述了jboss是什么,下载,安装,启动等
一份非常好的seam简介,简明扼要,有开发的例子介绍。
HornetQ 采用 Apache v 2.0开源协议,对用户的限制最小。 * HornetQ的设计强调可用性。 * 采用Java语言编写。可以在任何Java 6+ 的平台上运行。这几乎包括了从Windows到IBM mainframes的每个平台。 * 性能...
JBOSS的目录结构介绍,对于初学者有帮助。
HornetQ是java开源实现的消息系统框架,性能上比ActiveQ要好一些,被集成到JBoss的消息服务中。 Table of Contents Preface 1 Chapter 1: Getting Started with HornetQ 9 Chapter 2: Setting Up HornetQ 31 ...
Tomcat 7 (JBoss EWS 2.0) 上的 OpenMEAP 使用 OpenShift 此 git 存储库可帮助您使用 OpenShift 在 Tomcat 7 (JBoss EWS 2.0) 上通过 OpenMEAP 安装快速启动和运行。在 OpenShift 上部署 OpenMEAP 的步骤。 在创建一...