此内容没有您所选择的语言版本。

Chapter 4. Core Architecture


HornetQ core is designed as a set of Plain Old Java Objects (POJOs). It has also been designed to have as few dependencies on external jars as possible. As a result HornetQ core has only one more jar dependency than the standard JDK classes: netty.jar. This is because some of the netty buffer classes are used internally.
Each HornetQ server has its own ultra high performance persistent journal, which it uses for messaging and other persistence.
Using a high performance journal allows persistence message performance, which is something not achievable when using a relational database for persistence.
HornetQ clients, potentially on different physical machines interact with the HornetQ server. HornetQ currently provides two APIs for messaging at the client side:
Core Client API
This is a simple intuitive Java API that allows the full set of messaging functionality without some of the complexities of JMS.
JMS Client API
The standard JMS API is available at the client side.
JMS semantics are implemented by a thin JMS facade layer on the client side.
The HornetQ server does not associate with JMS and does not know anything about JMS. It is a protocol agnostic messaging server designed to be used with multiple different protocols.
When a user uses the JMS API on the client side, all JMS interactions are translated into operations on the HornetQ core Client API before being transferred over the wire using the HornetQ wire format.
The server always just deals with core API interactions.
A schematic illustrating this relationship is described in Figure 4.1, “HornetQ Application Interaction Schematic”.

Figure 4.1. HornetQ Application Interaction Schematic

Figure 3.1 shows two user applications interacting with a HornetQ server. User Application 1 is using the JMS API, while User Application 2 is using the core Client API directly.
You can see from the diagram that the JMS API is implemented by a thin facade layer on the client side.
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat