`

HornetQ 消息概念

    博客分类:
  • JAVA
阅读更多

消息传递保证

大多数消息系统的一个主要功能就是消息传递的准确,消息保障就是指对于一个消息,一个消费者只能接受一次,并且只能一次,即使事件发送失败了。这是很多业务的重要保障,比如你网上购物不希望收到多次订单,也不希望丢失订单。

另一方面,有时候你可能不关心丢失一次或者得到多次。比如,股票价格的消息,价格可能被下一个价格消息很快覆盖,不用太关心他的价格消息准确性。

系统允许可以定义自己的规则。

Transaction

消息系统支持在一个本地事务总发送多个消息和多个回执。HornetQ支持发送和接受消息作为全局事务的一部分。比如XA,JTA等

Durability

消息可以持久化也可以不持久化,持久化消息将会保存在存储设备中,在消息失败或者重启的时候仍然可以发送,非持久化消息不能再失败和重启的时候存活。持久化的例子比如订单或者交易,消息是不可以丢失的。非持久化的消息比如股票的价格消息

Messaging APIs and protocols

如何让客户端应用程序发送和消费消息呢?

几个系统提供了私有的API,与消息系统进行交互。

消息系统也提供了几个标准的规范,下面介绍一下

  • JMS

他是Sun JEE规范的一部分,他包含了消息队列和订阅/分发模式,JMS是一个消息的通用的最小的集合,JMS是一个非常有名的API,大部分的消息系统已经实现了,他只能使用JAVA,

JMS没有定义标准的实现方式,只定义了一套标准的纲领性的API解决使用不同的厂商自己的私有的协议客户端和服务端不可以直接交互

HornetQ提供了JMS1.1的全部功能支持

  • System specific APIs

许多系统提供了他们自己的API,这样做的好处,就是他们支持自己的全部的功能给客户端,想Jms API是不能完全暴露消息系统的功能,HornetQ提供了自己的API,如果你想要比Jms更强的功能,那你就可以使用它自身的私有API。

  • Restful API
  • STOMP
  • AMQP

Clusters

很多消息系统支持创建一个消息系统组,叫做集群,集群允许消息的发送和接受到不同的服务器上,允许你的系统横向添加新的服务器。

不同的消息系统对于集群的支持是不一样的,HornetQ提供了可配置的消息集群,他可以非常聪明的分配消息,后面详细叙述。

Bridges and routing

一些消息系统允许单独的集群之间进行消息搭桥,典型的通过不可靠的广域网链接或者internet,一个桥接就是一个系统的消息队列到另外一个系统的消息队列,桥接采用不可靠链接,在连接不可用以后能够自动重连。

HornetQ桥可以配置过滤器表达式到一个认证中心,事务也可以保持,

分享到:
评论

相关推荐

    HornetQ官方学习资料

    适合已经熟悉基本消息传递概念的新手,也适用于希望深入理解HornetQ高级特性的现有用户。 - **官方文档**: 官方提供的文档是学习HornetQ最权威的资料,涵盖了从安装配置到高级用法的所有内容。 - **社区论坛**: 加入...

    Hornetq2.1中文手册

    4. **消息的相关概念**:这是理解 HornetQ 功能的基础,涵盖了消息系统的核心概念。 - **消息相关的概念**:包括消息的发送、接收、存储和传输,以及消息的生命周期。 - **消息的种类**:详细讲解两种主要的消息...

    HornetQ2.1中文手册

    HornetQ2.1中文手册中详细介绍了消息处理系统的基本概念和技术细节,这对于理解和使用HornetQ至关重要。 ##### 4.1 消息相关的概念 - **消息**:在HornetQ中,消息是指在应用程序之间传递的信息单元。 - **地址...

    HornetQ2.1中文手册.7z

    2. **基本概念**:解释JMS消息模型,如点对点、发布/订阅模式,以及队列和主题的概念。 3. **API使用**:讲解如何使用HornetQ的Java API创建生产者、消费者,发送和接收消息。 4. **持久化与事务**:讨论消息的持久...

    HornetQ 2_1用户手册

    有关MoM和其它消息相关的概念解释请参见 Chapter 4, 消息的相关概念。 * 要了解有关HornetQ的更多信息请访问 http://www.jboss.org/community/wiki/HornetQGeneralFAQs。 为什么要使用HornetQ? 以下给出了几个...

    HornetQ集群配置

    HornetQ是一款高性能、可伸缩且开源的消息中间件,它被广泛用于构建分布式系统中的消息传递。在HornetQ中,集群配置是一种重要的特性,它允许多个HornetQ服务器形成一个集群,共享资源,提高可用性和可扩展性。本篇...

    HornetQ_User_Manual.pdf

    HornetQ是Jboss提供的开源消息服务软件,由Red Hat公司捐赠给Apache软件基金会,并在之后成为了Apache ActiveMQ的前身。HornetQ作为一款高性能、可伸缩的消息服务软件,它支持多种客户端访问协议,包括但不限于Java...

    jms-hornetq-standalone-examples:如何使用独立 HornetQ 服务器的示例

    HornetQ是一款高性能、轻量级的开源消息中间件,它提供了一种高效、可靠的消息传递机制,广泛应用于分布式系统中的异步通信。Java消息服务(JMS)是Java平台中用于企业级消息传递的标准API,而HornetQ提供了对JMS的...

    hornetq-guide-example:HornetQ Messaging开发人员指南。pdf,决有找到源码,只能自己来了

    HornetQ的核心概念包括: 1. **消息队列**:HornetQ支持基于队列的消息模型,其中生产者发送消息到队列,消费者从队列中接收消息。这种模式保证了消息的可靠传输,即使生产者和消费者在时间上不一致。 2. **主题...

    hormq学习资料 java例子

    HornetQ是一款开源的消息...通过解析和运行这个示例项目,你可以熟悉JMS的基本概念,掌握如何在实际应用中使用HornetQ来实现消息传递。同时,这也是理解Maven项目构建过程的一个机会,对于提升Java开发能力非常有帮助。

    ejb2.0消息驱动bean的开发(JBOSS4.0.4.GA 环境)

    1. **EJB2.0消息驱动Bean(MDB)概念**: - MDB是无状态的组件,专门设计用于处理来自JMS队列或主题的消息。 - MDB通过监听JMS消息,自动启动,处理消息后结束,实现了异步处理。 2. **JBOSS 4.0.4.GA**: - 这...

    Java Message Service中文完整版

    - **供应商实现**:许多厂商提供了符合JMS规范的实现,如IBM MQ、ActiveMQ、HornetQ等。 - **洁净室实现**:JMS规范允许开发者基于规范创建自己的实现,只要遵循规范的规定即可。 #### 五、许可与使用限制 根据...

    jboss 7 配置 jms

    - 在 JBoss 7 中,内置了 HornetQ 作为默认的消息传递系统,提供了 JMS 实现。 - HornetQ 是一个高性能、可伸缩的 JMS 服务器,支持多种传输协议,如 TCP/IP、HTTP 和 NIO。 3. **配置 JMS 在 JBoss 7 中** - **...

    基于Jboss的jms编程

    这通常涉及设置消息代理(例如HornetQ或ActiveMQ),定义目的地(队列或主题),并确保JMS服务启动。 6. **JMS基础**: JMS主要由两部分组成:消息生产者(发送消息)和消息消费者(接收消息)。消息可以是持久的...

    Jgroup学习总结

    JGroup常被用在分布式数据库、缓存系统、消息队列等场景,如JCache、Infinispan和HornetQ。通过集成JGroup,这些系统能实现高效的集群通信和故障处理。 ### 8. 学习资源与实践 除了官方文档,还有许多博客和在线...

    liferay配置使用开发大全

    在性能优化方面,Liferay支持缓存机制,如HornetQ消息队列和OSCache,通过合理配置可以提升系统的响应速度。数据库优化也是关键,了解如何进行SQL查询优化,以及如何配置数据源以提高并发性能,是提升Liferay性能的...

    JBOSS开发人员指南

    JBoss早期版本使用HornetQ作为内置消息服务器,后来转向了ActiveMQ。开发者需要熟悉这两个组件的使用和配置。 八、性能优化与监控 8.1 资源调优 通过调整内存设置、线程池大小、连接池参数等,开发者可以提高JBoss...

    jboss-eap-7.1.0

    5. **消息传递**:通过集成 HornetQ,EAP 7.1.0提供了高可用的消息中间件,支持JMS(Java Message Service),可用于异步处理和解耦应用程序组件。 6. **集群与高可用性**:JBoss EAP 7.1.0支持集群部署,能实现...

    jboos_document

    4. **JMS支持**:通过集成 HornetQ 提供消息传递服务,支持异步通信和解耦应用组件。 5. **JNDI**:Java Naming and Directory Interface 提供服务发现和对象绑定,便于应用程序查找和使用资源。 6. **Clustering...

    NettyInAction中文版.docx

    知名公司如 Red Hat、Twitter、Infinispan、HornetQ、Vert.x、Finagle、Akka 和 Apache Cassandra 等都在其项目中使用 Netty。Netty 的活跃社区和持续的更新确保了其始终保持领先地位。 通过学习 Netty,开发者不仅...

Global site tag (gtag.js) - Google Analytics