HornetQ是一个支持集群和多种协议,可嵌入、高性能的异步消息系统。HornetQ完全支持JMS,HornetQ不但支持JMS1.1 API同时也定义属于自己的消息API,这可以最大限度的提升HornetQ的性能和灵活性。
一、对于push pull的分析如下:
push | pull | |
描述 | 服务端主动发送数据给客户端 | 客户端主动从服务端拉取数据,通常客户端会定时拉取 |
实时性 | 较好,收到数据后可立即发送给客户端 | 一般,取决于pull的间隔时间 |
负载均衡 | 服务端统一处理和控制 | 客户端之间做分配,需要协调机制. |
状态保存 | 集中式,集中在服务端 | 分布式,分散在各个客户端. |
二、消息过程如下图(queue和topic 两种方式):
三、hornetQ的特性分析:
1.运行在java6或以上的平台。
2.第三方软件依赖少,可独立运行。
3.消息具有优先级别(0到9)。
4.支持特大消息的发送.
5.持久定阅.
6.使用了aio(linux)、nio(java),效率很高.
7.HornetQ拥有超高的性能,HornetQ在持久化消息方面的性能可以轻易 的超于其它常见的非持久化消息引擎的性能。
8.HornetQ完全使用POJO,纯POJO的设计让HornetQ可以尽可能少的 以来第三方的包。HornetQ既可以独立运行,也可以与其它Java应用 程序服务器集成使用。
9.HornetQ拥有完善的错误处理机制,HornetQ提供服务器复制和故障自 动转移功能,该功能可以消除消息丢失或多个重复信息导致服务器出 错。
10.HornetQ拥有强大的管理功能。HornetQ提供了大量的管理API和监控服务器。 它可以无缝的与应用程序服务器整合。