Spring 事件与 ActiveMQ
Spring Events vs ActiveMQ
Newbee 到 Spring 世界。我对 ActiveMQ 有一些了解。最近在我的一个项目中使用。在阅读有关 Spring 事件时提出了疑问。
Spring 事件:发布者 -> 监听者。我们确实会发布事件,我们会为此创建一些侦听器。
ActiveMQ:发布者 -> 监听者。我们确实会发布事件,我们会为此创建一些侦听器。
所以任何人都可以帮助我了解这两个 API 的用例或区别。
据我所知,Spring事件是应用程序级别的事件机制,让我们的应用程序里面的不同部分可以communicate/coordinate。范围和功能似乎分别非常狭窄和小。您可以同步(默认行为)或异步(使用@EnableAsync 和@Async)发布事件和处理这些事件。没有经纪人。如果这就是它所需要的,此功能可能非常适合您的应用程序。
另一方面,ActiveMQ 是一个功能齐全的消息代理。一般来说,它作为一个 独立的服务器进程 运行(尽管它可以嵌入到您的应用程序中)。它支持 行业标准协议 ,例如 AMQP、MQTT 和 STOMP,这些协议在众多平台和各种语言上都有客户端实现。例如,您可以从 Javascript 客户端通过 Websockets 发送 STOMP 消息,并使用在 Windows 上用 .NET 编写的 AMQP 客户端处理这些消息。它同时提供 JMS 和 JNDI 客户端实现。它支持发布-订阅和点对点语义。您可以将其用作集成平台,并将其扩展为多节点集群,为消息数据和使用各种协议的数千个远程客户端提供高可用性,或者您可以将其嵌入到您的应用程序中,仅用于本地事件。
Newbee 到 Spring 世界。我对 ActiveMQ 有一些了解。最近在我的一个项目中使用。在阅读有关 Spring 事件时提出了疑问。
Spring 事件:发布者 -> 监听者。我们确实会发布事件,我们会为此创建一些侦听器。
ActiveMQ:发布者 -> 监听者。我们确实会发布事件,我们会为此创建一些侦听器。
所以任何人都可以帮助我了解这两个 API 的用例或区别。
据我所知,Spring事件是应用程序级别的事件机制,让我们的应用程序里面的不同部分可以communicate/coordinate。范围和功能似乎分别非常狭窄和小。您可以同步(默认行为)或异步(使用@EnableAsync 和@Async)发布事件和处理这些事件。没有经纪人。如果这就是它所需要的,此功能可能非常适合您的应用程序。
另一方面,ActiveMQ 是一个功能齐全的消息代理。一般来说,它作为一个 独立的服务器进程 运行(尽管它可以嵌入到您的应用程序中)。它支持 行业标准协议 ,例如 AMQP、MQTT 和 STOMP,这些协议在众多平台和各种语言上都有客户端实现。例如,您可以从 Javascript 客户端通过 Websockets 发送 STOMP 消息,并使用在 Windows 上用 .NET 编写的 AMQP 客户端处理这些消息。它同时提供 JMS 和 JNDI 客户端实现。它支持发布-订阅和点对点语义。您可以将其用作集成平台,并将其扩展为多节点集群,为消息数据和使用各种协议的数千个远程客户端提供高可用性,或者您可以将其嵌入到您的应用程序中,仅用于本地事件。