简体   繁体   English

IBM MQ - 队列管理器/通道解决方案设计最佳实践

[英]IBM MQ - Queue Manager/Channel solution design best practice

This question is regarding designing a solution based on IBM MQ.这个问题是关于设计一个基于 IBM MQ 的解决方案。

I have multiple systems (for example say 3) which are going to speak to a single IBM MQ server remotely, ie the client systems are running in different machines.我有多个系统(例如说 3),它们将远程与单个 IBM MQ 服务器通话,即客户端系统在不同的机器上运行。

What is the best practice for designing the solution,设计解决方案的最佳实践是什么?

  • Have 3 Queue Managers running on 3 different ports to have 3 channels dedicated to each system在 3 个不同的端口上运行 3 个队列管理器,以便为每个系统提供 3 个专用通道
  • Have a single Queue Manager with 3 different channels, dedicated to each system.拥有一个包含 3 个不同通道的队列管理器,专用于每个系统。

What is a good solution design practice?什么是好的解决方案设计实践? Any guidance will be very much helpful.任何指导都会非常有帮助。

Thanks in advance, Yasothar提前致谢, Yasohar

Since all systems are within your organization, I would go with 1 queue manager.由于所有系统都在您的组织内,我会选择 1 个队列管理器。 The big mistake people make is to try and share queues, channels, UserIds, etc. between applications.人们犯的一个大错误是尝试在应用程序之间共享队列、通道、用户 ID 等。

The first thing to do is setup channel authentication (CHLAUTH) rules and enable connection authentication (CONNAUTH), so that you have proper MQ security in place.首先要做的是设置通道身份验证 (CHLAUTH) 规则并启用连接身份验证 (CONNAUTH),以便您拥有适当的 MQ 安全性。 Since all systems are internal, you may or may not want to use TLS/SSL on the channels for data encryption between clients and the queue manager.由于所有系统都是内部系统,您可能希望也可能不想在通道上使用 TLS/SSL 以在客户端和队列管理器之间进行数据加密。

Don't look at everything from 30,000 feet but rather break everything down to individual applications or micro applications.不要从 30,000 英尺高的地方看一切,而是将一切都分解为单个应用程序或微型应用程序。 Assign each application their own queue, channel and UserId.为每个应用程序分配自己的队列、通道和用户 ID。 Absolutely, positively, do NOT share channels or UserIds between applications.绝对的,积极的,不要在应用程序之间共享频道或用户 ID。

Create a naming standard for your queues and channels, so that it is easy to identify who they belong to.为您的队列和通道创建命名标准,以便轻松识别它们属于谁。 I like naming things by division/department/group/function/component.我喜欢按部门/部门/组/功能/组件命名事物。 Hence, it forms a nice tree of what you have defined and applications are using.因此,它形成了一个很好的树,包含您定义的内容和应用程序正在使用的内容。

Note: I'm not a big fan of putting queue manager name or hostname or MQ object name (ie QUEUE or CHANNEL) in the name of channels or queues.注意:我不太喜欢将队列管理器名称或主机名或 MQ 对象名称(即 QUEUE 或 CHANNEL)放在通道或队列的名称中。

ie Channel names:即频道名称:

HR.PAYROLL
HR.RECRUITMENT
HR.TRAINING

ie Queue names:即队列名称:

HR.PAYROLL.TAXES.FEDERAL
HR.PAYROLL.TAXES.STATE
HR.PAYROLL.TAXES.SOCIAL.SECURITY

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM