【问题标题】:Is it possible to bridge two WebSphere MQ messaging buses?是否可以桥接两个 WebSphere MQ 消息传递总线?
【发布时间】:2018-07-20 09:30:10
【问题描述】:

我对 WebSphere MQ 完全陌生,但我使用 NServiceBus 作为消息传递系统。

我面临的情况是我有两个系统,都使用自己的 WebSphere MQ,我需要其中一个系统中的端点接收消息并将消息发送到另一个系统,反之亦然。

值得一提的是,这两个系统部署在两个独立的基础设施中,并且会有安全限制,基本上意味着每个系统上的端点应该无法访问另一个系统中的资源。

是否有任何桥接机制可以允许在两个基础架构之间创建单一且安全的集成点,然后将消息从一侧的队列复制到另一侧?

【问题讨论】:

    标签: security websphere integration ibm-mq mq


    【解决方案1】:

    您有两个系统都使用自己的 WebSphere MQ 队列管理器。对于这个答案,我将它们称为 QM1 和 QM2。您需要进行如下定义才能将它们连接在一起。

    在 QM1 上创建这些:

    DEFINE QLOCAL(QM2) USAGE(XMITQ) +
           DESCR('Transmission queue for messages being delivered to QM2')
    
    DEFINE CHANNEL(TO.QM2) CHLTYPE(SDR) CONNAME('ipaddr-qm2(port-qm2)') XMITQ(QM2) +
           DESCR('Sender channel to move messages to QM2')
    
    DEFINE CHANNEL(TO.QM1) CHLTYPE(RCVR) +
           DESCR('Receiver channel is receive messages from QM1') 
    

    在 QM2 上创建这些:

    DEFINE QLOCAL(QM1) USAGE(XMITQ) +
           DESCR('Transmission queue for messages being delivered to QM1')
    
    DEFINE CHANNEL(TO.QM1) CHLTYPE(SDR) CONNAME('ipaddr-qm1(port-qm1)') XMITQ(QM1) +
           DESCR('Sender channel to move messages to QM1')
    
    DEFINE CHANNEL(TO.QM2) CHLTYPE(RCVR) +
           DESCR('Receiver channel is receive messages from QM2') 
    

    您还可以考虑创建数字证书并使用各种 SSL/TLS 设置来保护两个队列管理器之间的这些连接。

    您大概有一个队列,其中放置了需要移动到其他系统的消息?

    如果您将该队列设置为 QREMOTE 而不是 QLOCAL,那么您可以将其通过上述通道汇集到另一个系统。

    DEFINE QREMOTE(SEND.TO.QM2) RNAME(Q.ON.QM2) RQMNAME(QM2) XMITQ(QM2)
    

    如果您在 QM1 上的 QLOCAL 上已经有消息需要到达 QM2(反之亦然),那么您将需要一个简单的管道应用程序来从它们当前所在的位置获取它们并将它们放入上面定义的 QREMOTE。像 QLOAD 这样的东西可以做到这一点。

    【讨论】:

      【解决方案2】:

      【讨论】:

        猜你喜欢
        • 2015-11-17
        • 2015-06-04
        • 1970-01-01
        • 2010-12-04
        • 2010-12-05
        • 1970-01-01
        • 2012-11-05
        • 2015-11-23
        • 2011-03-28
        相关资源
        最近更新 更多