翻译 | 什么是 Java Message Service?

2019-07-211756

原文自国外技术社区dzone,作者为 Hitanshi Mehta,传送门

在这篇文章中,我们打算来聊聊关于 java message serviceI(JMS)。在我们开始的过程中,会解答到 JMS 是什么、为什么需要它、它是同步还是异步的,等等问题。

为什么我们需要 JMS?

企业式应用开始将目光关注在分布式应用开发当中了。因此,我们需要了解更多关于分布式应用的通信的知识。对于现有的应用程序中很难讲通信架构引用其中,所以 JMS 因此而生了。JMS 允许 web 组件、应用程序客户端以及 JMS 应用本身进行一个相互通信。除此之外,在不进行 hard-wired 连接的情况下,异步信息允许两个应用进行通信。

考虑到这一点上,JMS 是为异步机制。现在让我们到下一个问题上:

什么是 异步 JMS?

首先,我们先理解一下关于调用异步和同步方法的差别。

在异步方法调用中,在方法执行完毕之前,会将响应返回给用户。在长时间或者后台进程这种耗时的过程中,异步方法就显得特别有用。当响应返回给用户时,用户可以执行另外的任务。在另一头,本身的方法也会完成执行。

你可以将异步方法当作是常用的打印机制。在打印的过程中,在用户使用电脑操作另外的任务时,打印机会继续它的打印工作。

而在同步方法,响应需要在方法完成的时候才会返回给用户。

直到接收方收到消息之前,发送方式不会停止它的工作的。而在异步消息的帮助下,发送发得以在发送消息的同时继续它的工作。

JMS 的操作方法

我们可以在 JMS 中完成以下的操作:

  1. 创建消息
  2. 发送消息
  3. 接收消息
  4. 阅读(处理)消息

JMS 的类型

  1. 点对点(Point-to-point)
  2. 发布/订阅(Publish/subscribe)

1. 点对点(一对一)

在点对点消息的 bean 中,有一个发送方和一个接收方。这就像人们在手机上的通信一样,不同的是这种通信是针对组件之间的。当发送方发送消息时,如果有超过一条信息,则需要被放置于队列中等待发送。一旦消息到达接收者中,接收者就可以消费这条消息并且确认接收情况。

2. 发布/订阅(一对多)

JMS 的发布/订阅和 Netflix 很像。在使用 Netflix 的时候,我们有一个提供者(发送者)以及多个消费者(接收者)。许多用户可以订阅 Netflix 的频道并且观看由 Netflix 提供的电视节目或者电影。这和发布/订阅机制是一样的;第一个组件需要进行订阅。在订阅之后,组件可以进行消费并且确认消息。如果有多个消息,它们则需要放置到 topic 当中等待接收了。

JMS 的编程模型

对于 JMS,首先我们需要创建连接工厂的对象。在这之后,我们就可以创建一个允许我们创建会话对象的连接对象了。在这三样对象都被创建之后,我们就能够创建消息发送者和消息生产者。

希望这篇文章能帮助到你,Happy messaging!

分享
点赞1
打赏
上一篇:Docker常用命令笔记(一)
下一篇:翻译 | 为什么版本控制很重要以及怎样处理好它