博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HornetQ 消息概念
阅读量:3534 次
发布时间:2019-05-20

本文共 1118 字,大约阅读时间需要 3 分钟。

消息传递保证

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

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

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

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桥可以配置过滤器表达式到一个认证中心,事务也可以保持,

转载地址:http://cnmhj.baihongyu.com/

你可能感兴趣的文章
JavaScript学习(new1)
查看>>
http GET 和 POST 请求的优缺点、区别以及误区
查看>>
JVM的4种垃圾回收算法、垃圾回收机制
查看>>
什么是分布式事务
查看>>
常用的分布式事务解决方案
查看>>
设计模式:单例模式 (关于饿汉式和懒汉式)
查看>>
一致性Hash算法
查看>>
更新Navicat Premium 后打开数据库出现1146 - Table 'performance_schema.session_variables' doesn't exist
查看>>
安装rabbitmq时踩的坑
查看>>
2021-06-09数据库添加多条数据
查看>>
简单的JAVA小作品
查看>>
一些方便的遍历方法
查看>>
CMake下载
查看>>
未调用fflush产生的图片文件无法打开问题
查看>>
SQL 约束(二)
查看>>
SQL ALTER用法(三)
查看>>
SQL where子句及查询条件语句(六)
查看>>
SQL 连接JOIN(九)
查看>>
linux VM虚拟机可以ping通主机,但主机无法ping通虚拟机
查看>>
linux 错误码
查看>>