Java JMS 极简演示


这篇文章足够清楚并解释了 JMS 模式的主要思想。现在,Message Broker 几乎是每个企业应用程序的必备部分。使用的源代码位于此处
JMS 或 Java Messaging 服务是一种使用消息(对象)进行异步通信的解决方案。最初,它是 JSR(Java EE 中使用的规范)的一部分。
假设我们有任何服务每秒只能处理 100 个请求。任何更高的负载都会堵塞服务或停止服务。
此类问题众所周知,可以通过将 API 拆分为两部分来轻松排序:

  • 第一部分创建一个任务并立即返回其 id。一旦系统有可用的工作人员,它将处理该任务。
  • API的第二部分由用户不断池化,直到完成任务并返回。

所以我们问题的关键是如何在 2 个 API 之间共享信息?我们可能会使用数据库或一些 Java 集合,但 JMS 提供了两种方便的异步解决方案。
在 Jms 中有两种主要模式:队列和主题。关键的区别在于在 主题Topic 中我们可以有很多订阅者。这两种结构都可以从许多生产者那里接收数据。 
有许多已知的消息代理,如 RabbitMq、Kafka 等。在我们的示例中,我们使用免费的开源Active MQ 代理。为了安装它,请执行以下步骤:

<dependency>
  <groupId>org.apache.activemq</groupId>
  <artifactId>activemq-core</artifactId>
  <version>5.7.0</version>
</dependency>