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

Difference between AMPS(Advanced Message Processing System) and JMS

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

JMS 是一个基于 JavaAPI 的异步消息支持 point-to-point and pub-sub semantics. It can be implemented by anyone. Apache ActiveMQ 可能是最流行和最知名的 JMS实现,尽管有很多实现。

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

我最近遇到了这个post,作为 60East Technologies 的一名员工,我觉得它应该得到更完整的回应。

如果您问的是 "what role in an architecture do these serve",那么您是对的:这两者都属于面向消息的中间件的大类。它们都是基于消息作为交换数据单位的概念在进程之间协调和交换数据的方法。

JMS 是 API 用于 Java 的标准,也是处理消息传递的更流行的方法之一。有来自多个供应商的多种实现。因为它是一个标准,所以它们在接口上都是相似的并且有不同的实现。支持 JMS 的产品还可以支持 AMQP 等有线标准,为未使用 Java.

编写的组件提供一定程度的互操作性

AMPS(高级消息处理系统)不太为人所知。它是由 60East Technologies, Inc. 开发的一种消息传递产品。由于它是一种产品而不是标准,因此只有一个实现。这是一个基于代理的系统,因此在 AMPS 中,所有消息流量都通过代理。 AMPS 支持多种编程语言(目前,有适用于 Java、C#/.Net、Python、JavaScript 和 C++ 的客户端)。 AMPS 支持多种消息负载格式(FIX、JSON、XML、Protocol Buffers、MessagePack 等)。 AMPS 还支持几种不同风格的消息传递:消息队列(如 JMS 所做的那样)、扇出发布和订阅、"query and subscribe" 其中应用程序获取一组记录的当前值,然后在记录时接收推送更新更改和历史重播 ("bookmark subscribe"),可以精确重播消息流任意次数。 AMPS 还提供诸如内联消息 transformation/enrichment、聚合消息和投影视图的能力(类似于 RDBMS 可以投影底层视图的方式 table)。

AMPS 最初是为非常高容量和低延迟的应用程序设计的(比如金融领域的 engines/crossing 网络)。 AMPS 强调性能,并采用 "whole-system" 的性能视图。也就是说,性能是从生产者开始发送消息到消费者可以对消息采取行动的那一点来考虑的,而不仅仅是关于代理中的时间。

总结一下:AMPS 是一个产品而不是一个标准,支持多种编程语言,提供多种功能并超越消息队列,并且专为非常高性能而设计

瑞安

60东方科技