AMPS(高级消息处理系统)和JMS之间的区别

时间:2018-12-25 11:41:38

标签: java jms amqp

这两者之间有什么区别,因为两者都是基于通过主题/主题在它们之间交换消息的发布者和订阅者的相同方法?

2 个答案:

答案 0 :(得分:2)

JMS是基于Java的 API ,用于异步消息传递,同时支持point-to-pointpub-sub语义。任何人都可以实施。 Apache ActiveMQ可能是最受欢迎的JMS实现,尽管有许多实现。

AMPS是由60East Technologies开发的专有消息传递系统,它似乎仅支持pub-sub语义。

答案 1 :(得分:2)

我最近遇到了这个帖子,作为60East Technologies的一名员工,我认为它应该得到更完整的答复。

如果您问“这些功能在体系结构中起什么作用”,那么您是对的:这两种都属于面向消息的中间件的大类。它们都是在消息作为数据交换单位的概念基础上在进程之间协调和交换数据的两种方式。

JMS是Java的标准API,并且是处理消息传递的更流行的方式之一。来自多个供应商的多种实现。由于这是一个标准,因此它们在界面上都相似并且具有不同的实现。支持JMS的产品还可以支持AMQP等有线标准,从而为非Java编写的组件提供一定程度的互操作性。

AMPS(高级消息处理系统)鲜为人知。它是60East Technologies,Inc.开发的消息产品。由于它是产品而不是标准,因此有一个实现。这是一个基于代理的系统,因此在AMPS中,所有消息流量都通过代理传递。 AMPS支持多种编程语言(目前,有Java,C#/。Net,Python,JavaScript和C ++可用的客户端)。 AMPS支持多种消息有效负载格式(FIX,JSON,XML,协议缓冲区,MessagePack等)。 AMPS还支持几种不同的消息传递样式:消息队列(如JMS一样),扇出发布和订阅,“查询和订阅”,其中应用程序获取一组记录的当前值,然后在记录时接收推送更新更改和历史重播(“书签订阅”),可以精确地重播消息流多次。 AMPS还提供内联消息转换/扩展,聚集消息和项目视图的能力(类似于RDBMS可以投影基础表的视图的方式)。

AMPS最初是为高容量和低延迟的应用程序设计的(金融行业中的交叉引擎/交叉网络之类的东西)。 AMPS强调性能,并采用“整个系统”的性能观点。也就是说,从生产者开始发送消息到消费者可以对消息采取行动的角度来考虑性能,而不仅仅是经纪人的时间。

总结:AMPS是产品而不是标准,支持多种编程语言,提供了多种功能,并且超出了消息队列,并且具有很高的性能

瑞安

60East Technologies