websphere mq与数据库的对比

    技术2025-09-27  105

    mq 主要对象基本概念简介

                1:消息:就是一段包含业务信息的数据;如一段字符串。

                2:队列:就是一个临时保存消息的缓存。通常情况下按先进先出的规则保存。

                3:队列管理器:管理它所拥有的所有队列,管理队列的生命周期。它是队列的生存环境。类似java中的context(上下文);

                4:通道:从java角度,它本质上就是一个socket。通过ip,端口,用于与其它机器建立连接。

    wmq 概念与数据库比较

                1:websphere mq 程序:相当于数据库程序

                2:队列管理器:相当于数据库中的一个具体数据库实例;如:数据库中的学生信息数据库。

                3:队列:相当于数据库的表;

                4:消息:相当于数据库的一条记录;

                5:通道:这是数据库中不曾有的功能。

    wmq 原理简图

                应用系统MM调用另一网络中的应用系统GG的一个功能,并传递一个参数,然后把处理结果返回给应用系统MM。

             

             

                (1):应用系统通过JMS/MQI向队列管理器中的请求队列发送消息;

                (2):请求队列连接发送通道,把消息发送给发送通道。

                (3):本地(A)发送通道与远程机子(B)上的接收通道在网络正常的情况下建立连接,关把消息发送到远程机器(B)上的接收通道。

                (4):远程机器(B)上的接收通道与其内部(B)的请求队列建立连接。并传送请求消息。

       此时:本地队列与远程机子上的请求队列间接建立连接。本地请求队列中的消息发向远程机子上的请求队列

                (5):远程机子上的应用系统GG在合适的时间(例如不忙时)取走其机器上请求队列中的消息进行业务处理。

                (6):应用系统GG把处理的结果放入其机器上的结果队列。

                (7):结果队列把结果消息发送给发送通道。

                (8)B上的发送通道连接A上的接收通道,并把结果消息发送到A上的接收通道。

                (9)A上的接收通道把结果传送到结果队列缓存中;

                (10):等待应用系统MM在合适的时间取走结果,进行后续处理。

     

               注意事项:队列中并没有请求队列和接收队列这样的队列类型,此处只是一个直观的名称,便于理解。

    数据库与mq比较简图

               应用系统MM调用另一网络中的应用系统GG的一个功能,并传递一个参数,然后把处理结果返回给应用系统MM。

            

     

         

           (1)A中的应用系统MM通过JDBC向数据库db_MM的请求表中插入一条记录;

           (2):自己用java实现的socket通过监听程序取走请求表中的数据;

           (3):连接B中的socket ,并把数据传输到B中;

           (4)B中的socket把数据写入到B中的请求表;

           (5)B中的系统GG从请求表中取走数据,并处理;

           (6):把处理结果插入到B中的数据db_GG的结果表中;

           (7)B中的socket通过监听程序取走B中结果表的数据;

           (8)B中的socketA中的socket连接,并传输数据;

           (9)A中的socket把接收到的数据插入到A中的数据库db_MM的结果表中;

           (10):应用系统MMA中的结果表中取走结果数据。

        一次请求结束。

     

      数据库与wmq对比:

         (1):内网系统与数据库/mq的连接

       如果使用java接口连接,两者非常相似;

                  数据库使用jdbc连接数据库。Mq使用jms连接mq;

         (2):存储:

       数据库通过表来保存数据。

          Wmq通过队列来缓存数据。

        (3):外网连接:

               数据库与数据库之间并不能进行通讯;只能通过自己编写连接代码来实现可靠安全的传输机制;

                Wmq之间可以进行通讯,而且能保证数据在不同网络之间的安全可靠的传输。

     

       总结:

               (1):从使用角度而言:wmq更类似数据库;

               (2):从功能来看:wmq更接近socket.因为它的出现就是为了解决网络传输问题(安全,可靠,异构,同步)。此时,数据库只类似于wmq中的缓存即队列;

        

          一句话:wmq就是一个数据库与极致化的sokcet的杂合体。

                 或者:是一个实现了数据库之间安全可靠传输的数据库。

                 或者:是一个具有数据库功能的极致化的socket.

     

    a
    最新回复(0)