yinxin
作者yinxin·2015-04-16 22:03
项目经理·某金融机构

websphere mq 与数据库的对比

字数 4171阅读 1387评论 0赞 0

  • mq 主要对象基本概念简介

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

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

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

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

  • wmq 概念与数据库比较

            1:webspheremq 程序:相当于数据库程序

            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中的socket与A中的socket连接,并传输数据;

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

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

    一次请求结束。

 

  数据库与wmq对比:

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

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

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

    (2):存储:

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

     Wmq通过队列来缓存数据。

   (3):外网连接:

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

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

 

   总结:

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

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

    

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

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

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

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广