• MQ队列管理器搭建(一)


    多应用单MQ使用场景

    如上图所示,MQ独立安装,或者与其中一个应用同处一机。Application1与Application2要进行通信,但因为跨系统,所以引入中间件来实现需求。
     
    Application1需要连接MQ,并将消息放入队列Queue中,Application2同样连接MQ,监听在Queue队列上,一旦发现有消息进入则取出该消息进行处理。
    下面将给出创建队列管理器和队列的示例:
        定义队列管理器名称为Qm1,本地队列名称为Queue,服务器连接通道CHAN_SERVER_CON,监听端口为1414,死性队列QDEAD
        搭建MQ队列可以使用图形用户界面也可以使用命令进行,此处使用命令进行。
    1.创建MQ队列管理器,使用mqm用户登录MQ所在机器
    mqm@localhos ~>$crtmqm Qm1
    2.启动Qm1队列管理器
    mqm@localhos ~>$strmqm Qm1
    3.进入Qm1命令行
    mqm@localhos ~>$runmqsc Qm1
    4.定义一个本地队列Queue
    DEFINE QLOCAL ('Queue')  DEFPSIST (YES) MAXDEPTH(100) REPLACE
    'Queue'为队列名称,至于使用单引号的原因是,如果在shell脚本中不加单引号的话,最后创建出来的会变成大写QUEUE.。DEFPSIST(YES)表示该队列为持久化队列,MAXDEPTH(100)代表该队列的最大深度为100,如果消息超过了100的话,则会被放入死性队列。
    5.在定义一个死性队列QDEAD
    DEFINE QLOCAL ('QDEAD')  DEFPSIST (YES) MAXDEPTH(100) REPLACE
    6..给Qm1设置指定的死性队列,当消息无法到达指定的Queue中时,会被放入死性队列QDEAD
    ALTER QMGR DEADQ(‘QDEAD’)
    7.定义服务器连接通道CHAN_SERVER_CON,该通道的用途是供应用程序连接的,应用程序通过服务器连接通道从而连接MQ。
    DEFINE CHANNEL(‘CHAN_SERVER_CON’) CHLTYPE(SVRCONN) REPLACE
    8.定义监听器LISTENER.TCP,该端口1414应用程序连接时需要指定。
    DEFINE LISTENER('LISTENER.TCP') TRPTYPE(TCP) CONTROL(QMGR) PORT(1414) REPLACE
    9.启动监听器LISTENER.TCP
    START LISTENER('LISTENER.TCP')
     
    到此为止这个需求中的MQ队列管理器已经创建完毕了。如果在创建过程中出现错误,或者想停止队列管理器,或者想删除重新创建,则执行下述命令:
    1.删除前先停止队列管理器
    ctrl+c可以冲命令行跳出,或者输入end回车也可以。
    mqm@localhos ~>$endmqm Qm1    停止队列管理器
    mqm@localhos ~>$dspmq                  查看当前队列管理器的执行状态,当队列管理器状态变为Ended normally时才能删除
    mqm@localhos ~>$dltmqm Qm1       删除队列管理器,它会级联删除该队列管理器中的队列和监听器等等。
     
    2.至于java如何与MQ通信,如何连接MQ队列此处不做过多的阐述了!
  • 相关阅读:
    动态规划——划分
    动态规划——子序列
    动态规划——棋盘
    广搜——变换类
    广搜——连通块
    贪心
    数学——大整数问题
    图论——生成树
    动态规划——面积覆盖
    广搜——路径寻找
  • 原文地址:https://www.cnblogs.com/eer123/p/6891736.html
Copyright © 2020-2023  润新知