IBM MQ的组件之间的逻辑关系是什么?

huangapple go评论115阅读模式
英文:

What is the logical relationship between the components of IBM MQ?

问题

我正在使用IBM MQ和Java客户端应用程序在我的当前任务中。

我想了解IBM MQ组件之间的逻辑关系,比如队列管理器,队列,通道和监听器。

通道的类型及其实际用途。

想了解队列管理器如何处理队列、通道,以及监听器如何监听请求并将其转发到队列管理器。如果有人能解释一下客户端应用程序与MQ队列管理器之间的流程,以及在两台不同机器上托管的两个队列管理器之间的流程,将会非常好。

谢谢,
Sagar

英文:

I am using IBM MQ and Java client application in my current assignment.

I would like to know the logical relationship between IBM MQ components like queuemanager, queue, channel, and listener

Types of channel and their practical usage.

Would like to know about how queuemanager handles queues , channels and how listner listens for requests and forwards them to queue manager. Also it will be great if one explains flow between client application-mq queue manager and also the flow between two queue managers in mq hosted on two different machines

Thanks,
Sagar

答案1

得分: 2

非常广义地说,队列管理器是一个消息代理 -- 它是一种托管队列的软件,等等。队列管理器是一个可以启动和停止的东西。原则上,在同一物理主机上可以存在多个队列管理器。

队列是客户端生成数据并从中消费数据的命名位置。这些数据通常称为消息。每个队列将属于特定的队列管理器。

通道是连接定义 -- 它指定了客户端与队列管理器之间通信的低级参数。这些参数包括加密方法等内容。

您问及通道类型,但我怀疑对于Java程序员来说,唯一相关的类型可能是标准消息通道,IBM的Java类库提供了JMS接口。更近期的MQ安装还具有AMQP通道,理论上可以与像Apache Qpid-JMS这样的AMQP JMS库一起使用。然而,我从未使用过AMQP通道,并且我不确定它目前是否被广泛使用。

侦听器是等待来自客户端的连接并将它们分配给相关队列管理器的进程。

然而,这只是一个巨大的过度简化。

顺便说一下,许多Java开发人员似乎在处理IBM MQ时感到困难,因为它的产生早于Java,并且用一种似乎过时的术语来描述。那些没有接触过消息中间件的Java开发人员可能会从一个像Apache ActiveMQ这样从一开始就为Java设计的消息应用程序入手受益,一旦理解了基本原则,ActiveMQ的概念与MQ的概念相当容易对应。

英文:

Very broadly, a queue manager is a message broker -- it's a piece of software that hosts queues, etc. A queue manager is a thing you can start and stop. There can, in principle, be multiple queue managers on the same physical host.

A queue is a named location which clients produce data to, and consume data from. This data is broadly referred to as messages. Each queue will belong to a specific queue manager.

A channel is a connection definition -- it specifies the low-level parameters for communication between the client and the queue manager. These parameters include things like encryption methods.

You ask about types of channel, but I suspect that the only type relevant to a Java programmer is the standard message channel, for which the IBM Classes For Java libraries provide a JMS interface. More recent MQ installations also have an AMQP channel which could, in principle, be used with an AMQP JMS library like Apache Qpid-JMS. However, I've never used the AMQP channel, and I'm not convinced it is widely used at present.

A listener is a process that waits for connections from a client, and assigns them to the relevant queue manager.

This is a huge oversimplification, however.

Incidentally, many Java developers seem to struggle with IBM MQ because it pre-dates Java, and is described in a terminology that seems archaic. Java developers who have no exposure to messaging middleware might (maybe) benefit from getting started with a messaging application like Apache ActiveMQ, that was designed for Java from the start. ActiveMQ concepts map reasonably easily onto MQ concepts, once the basic principles are understood.

huangapple
  • 本文由 发表于 2020年9月14日 18:53:52
  • 转载请务必保留本文链接:https://go.coder-hub.com/63882854.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定