MQ队列堵塞无法读取经验总结】的更多相关文章

问题现象: 1号发生本地来帐队列无法读取消息的问题,导致来帐报文均无法正常处理. 原因分析: 应用系统没有修改或上包,昨天交易和消息读取还是一切正常,mbfe的状态也是正常,mq的状态正常,以上正常可以排除系统问题和版本配置问题. 今天出现和今天发生交易的特殊性或许有关,尝试读取队列中排队的消息失败(/opt/mqm/samp/bin/amqsbcg qname qmgrname 查看不清理:/opt/mqm/samp/bin/amqsget qname qmgrname 查看并清理). 初步认…
本作品采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可. 转载请注明出处和作者.http://blog.csdn.net/xtj332 背景:消息队列中有非常多的消息需要处理,并且监听器onMessage()方法中的业务逻辑也相对比较复杂,为了加快队列消息的读取.处理速度.可以通过加快读取速度和加快处理速度来考虑.因此从这两个方面都使用多线程来处理.对于消息处理的业务处理逻辑用线程池来做.对于加快消息监听读取速度可以使用1.使用多个监听器监听一个队列:2.使用一个监…
MQ集群及网关队列管理器的搭建 描述:     如上图所示,为MQ的集群搭建部署图.CLUSTERA.CLUSTERB分别是两个集群,其中Qm1-Qm3.GateWayA为CLUSTERA集群中的队列管理器:Qm1-Qm3.GateWayB是CLUSTERB集群中的队列管理器.GateWayA与GateWayB负责网络路由和消息分发,使用集群的方式可以达到负载均衡的目的,除此之外还能提高MQ使用的稳定性.同一个集群中除网关队列管理器外的任意队列管理器因故关闭或停止工作后,其他的队列管理器可以接管…
MQ级联方式使用场景 使用场景:     如上图所示,Application1与Application2要进行通信或者消息互换,使用MQ中间件作为中介.上图中,Application1与Application2通信不进行直接连接,而是通过与MQ通信从而实现二者的通信.图中两个MQ的信息如上描述.其中RemoteQueue为远程队列,该队列指定了目标端对应的队列为Queue,并且该远程队列指定了传输所使用的传输队列尾TransQueue:而此传输队列TransQueue与发送通道CHAN_QMGR…
多应用单MQ使用场景 如上图所示,MQ独立安装,或者与其中一个应用同处一机.Application1与Application2要进行通信,但因为跨系统,所以引入中间件来实现需求.   Application1需要连接MQ,并将消息放入队列Queue中,Application2同样连接MQ,监听在Queue队列上,一旦发现有消息进入则取出该消息进行处理. 下面将给出创建队列管理器和队列的示例:     定义队列管理器名称为Qm1,本地队列名称为Queue,服务器连接通道CHAN_SERVER_CO…
一,最近压测系统交易峰值时,因该支交易采用MQ异步队列处理机制:该增加积分的交易,前段服务器优先返回给客户增加积分成功的结果,后端的MQ队列服务器再慢慢处理该请求: 二,压测过程中出现的问题现象:前几分钟TPS特别高,并无报错,直到一定时间后(交易发送了4.5w笔后),出现TPS直接降为0的情况 三,通过MQ队列服务器的监控发现后台 四,由于incoming的速度远大于deliver的速度,导致MQ服务器队列的请求累计,导致线程池.内存被占用完了,导致系统无法再接受请求: 五,实际压测,应以提升…
一. 创建MQ队列管理器 1.1准备工作 到所安装websphere mq的机子上,进入/opt/mm/bin目录下,查询相关mq的情况,通过命令行./dspmq. 创建mq队列管理器的的时候要用mqm用户进行创建,切换到mqm用户: su mqm  1.2详细操作 备注:红色加粗字体可替换 1.创建mqm用户组[正常已经建好] 2.创建mqm用户,将用户mqm添加到mqm用户组下[正常已经建好] 3.创建队列管理器[必须] ./crtmqm -q QSHAW  4.启动队列管理器[必须] ./…
dspmq: 队列管理器显示 QMCIPSA-------队列管理器 runmqsc QMSAA  运行查找Q队列名 运行MQ命令 runmqsc QmgrName 如果是默认队列管理器,可以不带其名字 ===================================== 下面是在MQ环境中可以执行的MQ命令(即在runmqsc环境下可以敲的命令) dis ql(*) 本地 dis qr(*) 远程 end -------------------------- 显示队列的所有属性 DISP…
显示队列名dspmq 打开队列 runmqsc QMSAA 200-远程队列 dis qr(*) 显示所有队列 dis qr(saa_to_cips) all 显示队列参数 20-本地队列 查看队列深度(是否有堵塞报文)dis ql(*) where (curdepth gt 0)…
分享一段代码,很实用. 下面这段java代码是我在国外一个论坛上发现的,源地址已经忘了.代码的作用是可以删除正在使用的mq的队列消息,管理mq的人一定知道它的美妙了吧,哈哈. 我拿来改了下,增加了2个参数支持:ccsid和channel.上代码: import java.util.Hashtable; import com.ibm.mq.*; /** * A simply Java class to destructively read (delete) all message on a que…
1.使用MQ安装用户登录Linux,例如:su - mqm 2.runmqsc Qm1 #Queue 代表要查询的队列3.DISPLAY CONN(*) WHERE(OBJNAME EQ Queue)查询的结果:(说明此刻有两个机器连接队列Queue)AMQ8276: Display Connection details.   CONN(7CE89C50191E0020)                   EXTCONN(414D5143516D31202020202020202020)   …
消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成,通过提供消息传递和消息排队模型,它可以在分布式环境下拓展进程间的通信,对于消息中间件,常见的角色大致也就有Producer(生产者).Consumer(消费者) MQ     消息中间件     消息队列 Message Queue简称MQ 种类: 1.Apache  ActiveMQ   ActiveMQ是Apache出品,最流行的,能力强劲的开源消息总线.ActiveMQ是一个完全支持JMS1.…
一.修改active mq配置文件 修改\conf\activemq.xml,带下划线部分 <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright owners…
IBM MQ 6.0中设置两个队列,(远程队列.通道之类都不设置). 队列管理器是XIR_QM_1502 队列名称是ESBREQ IP地址是10.23.117.134(远程的一台电脑,跟我的电脑不在一个局域网内) 端口1414 CCSID 1208 MQ配置可以参考这个,有配图http://wenku.baidu.com/view/06d108d0360cba1aa811daa3.html 程序如下,发送线程两个,接收线程一个.接收完毕后就结束. /* * 创建日期 2012-7-10 * * …
转自:http://windwrite.com/archives/603 我们现有的业务就面临此问题,消息生产太快,消费不过来,导致队列堆积很长,把服务器内存耗尽,这时RabbitMQ的处理能力很低下. 我在RabbitMQ社区发邮件问了下: We have the queue publisher and subscriber, the subscriber is going with multi-threads. The problem is the queue has been increa…
分享一段代码,很简单但是也很实用. #!/usr/bin/python #-*- coding:gb18030 -*- ''' Usage: mq.py [Qmgr] *get the queues' curdepth which type is local, and sorted by curdepth desc. Auth : kongdl@eastcom-sw.com ''' import re import os import sys if __name__=='__main__': i…
场景:学习mq相关的知识,发现这是一篇总结性很强的文章,转过来学习学习! 1 mq经验总结 首先了解什么是mq?mq的作用是什么? mq是通讯中间件.他的作用是省去开发人员开发通讯工具的时间,节省开发成本,提高开发效率. mq的使用,如何安装mq?根据以往的经验,win版的mq比较容易安装,傻瓜式,一路next就可以. aix版本的用smitty安装.linux版本用rpm -ivh 安装 mq中一些名称的概念:队列管理器:简单的说就是一个大容器的管理员,这个大容器里放了很多东西.队列:大容器里…
 简析SynchronousQueue.LinkedBlockingQueue(两个locker,更快),ArrayBlockingQueue(一个locker,读写都竞争)     三者都是blockingQueue.     对于blockingQueue的堵塞和非堵塞方法对注记方案:         * oppo(oppo手机)是一对,offer和poll不堵塞         * ppt是一对.put和take都堵塞. 解析源码之前先实战看下SynchronousQueue. publi…
消息队列技术是分布式应用间交换信息的一种技术.消息队列可驻留在内存或磁盘上,队列存储消息直到它们被应用程序读走.通过消息队列,应用程序可独立地执行--它们不需要知道彼此的位置.或在继续执行前不需要等待接收程序接收此消息.   消息中间件概述 消息队列技术是分布式应用间交换信息的一种技术.消息队列可驻留在内存或磁盘上,队列存储消息直到它们被应用程序读走.通过消息队列,应用程序可独立地执行--它们不需要知道彼此的位置.或在继续执行前不需要等待接收程序接收此消息. 在分布式计算环境中,为了集成分布式应…
TensorFlow程序读取数据一共有3种方法: 供给数据(Feeding): 在TensorFlow程序运行的每一步, 让Python代码来供给数据. 从文件读取数据: 在TensorFlow图的起始, 让一个输入管道从文件中读取数据. 预加载数据: 在TensorFlow图中定义常量或变量来保存所有数据(仅适用于数据量比较小的情况). 一 预加载数据 import tensorflow as tf x1 = tf.constant([2,3,4]) x2 = tf.constant([4,0…
前言 公司的项目一直都是在使用MQ的,但是由于使用的功能很简单,所以一直都是知其然不知其所以然,作为一个程序猿有必要了解每一个使用的技术,为什么使用它?它的优点是什么?缺点是什么?等等... 使用mq的好处 解耦与复用 系统A要发送一个消息到多个系统,如果此时每增加一个系统,系统A都需要通过修改源码来增加接口,此时耦合非常高,但是如果中间使用消息队列的话,系统只需要发送一次到消息队列,别的系统就能复用该信息,当增加或删除系统调用接口的时候,不需要额外的更新代码. 异步 用户调用一个接口的时候,可…
Redis队列:Redis队列是一个Key-Value的NoSQL数据库,开发维护很活跃,虽然是一个Key-Value数据库存储系统,但它本身支持MQ功能,所以完全可以当做一个轻量级的队列服务来使用 MQ队列   :在分布式系统中存储转发消息,在易用性.扩展性.高可用等方面表现不俗,主要是为了实现系统之间的双向解耦 两者的区别 1. Redis没有相应的机制保证消息的消费,当消费者消费失败的时候,消费体丢失,需要手动处理.MQ:具有消息消费确认,即使消费者消费失败,也会自动使消息体返回原队列,同…
背景:这篇文章还是很全面的,但是很杂乱 后面慢慢整理吧! 1 MQ 消息队列+发送队列+消息通道 接收通道名称与发送端的发送通道名称要一致,修改通道信息后要执行 start channle(chlname) 重启通道.常用的MQ命令 66.0.42.240 用户 mqm/mqm88.0.52.40 mq队列服务器:mqm/1qaz2wsx二代:88.0.65.91 vlog/1qaz2wsx监控:/cnaps/maintain/bin管理台:admin/698825 240环境:admin/12…
消息队列+发送队列+消息通道 接收通道名称与发送端的发送通道名称要一致,修改通道信息后要执行 start channle(chlname) 重启通道.常用的MQ命令 66.0.42.240 用户 mqm/mqm88.0.52.40 mq队列服务器:mqm/1qaz2wsx二代:88.0.65.91 vlog/1qaz2wsx监控:/cnaps/maintain/bin管理台:admin/698825 240环境:admin/123456 698825通讯前置:88.0.65.94 pmts+1q…
https://mp.weixin.qq.com/s/f319mm6QsetwxntvSXpKxg 亿级用户下的新浪微博平台架构 炼数成金前沿推荐 2014-12-04 序言 新浪微博在2014年3月公布的月活跃用户(MAU)已经达到1.43亿,2014年新年第一分钟发送的微博达808298条,如此巨大的用户规模和业务量,需要高可用(HA).高并发访问.低延时的强大后台系统支撑. 微博平台第一代架构为LAMP架构,数据库使用的MyIsam,后台用的php,缓存为Memcache. 随着应用规模的…
[IT168 技术文档]MSMQ是Windows 2000.Windows XP.Windows Server 2003的一个组件,并将继续包含在Windows Vista和以后的Windows服务器中.即使目标接收应用程序没有运行,或运行发送或接收应用程序的计算机没有联网,协同合作的应用程序仍能利用MSMQ在彼此之间发送和接收消息.在到达目标队列之前,消息由MSMQ存储并转发.接收应用程序能够从队列中恢复数据. MSMQ之类消息队列的主要特点在于它分离发送和接收应用程序,使其不必同时运行.这意…
首先在windows系统中安装MSMQ 一.MSMQ交互 开发基于消息的应用程序从队列开始.MSMQ包含四种队列类型: 外发队列:消息发送到目的地之前,用它来临时存储消息. 公共队列:在主动目录中公布.整个网络各种服务器上的应用程序能够通过主动目录找到并应用公共队列. 私有队列:这些是本地服务器上的队列,对其它服务器无效(因此这些队列不在主动目录中公布.) 系统队列:包含日记队列(由系统生成).死队列和事务型死信队列.死消息无法传送. System.Messaging命名空间执行MSMQ的编程操…
出处:http://www.cnblogs.com/80X86/p/5557801.html 近期做一个小的功能需求,用到了队列,用的时候出了很多问题,现在总结一下,希望能对有需要的人提供帮助. 我的需求很简单,就是多个客户端连接到我的一个小型的数据转发服务器上,开始使用的是Socket通信实现这个功能,一旦数据服务器接收到来自不同客户端发来的消息,就对这些消息进行处理(我这里是将数据接收到后再转发到另一个服务器上),但考虑到客户端是每隔一个很短的时间周期向服务器发送信息,并且连接客服端数量比较…
下文参考:http://hi.baidu.com/21tian/blog/item/ce5464097ddf10cb3ac76335.html为何使用消息队列 您可能认为您能够通过一个简单的数据库表(一个应用程序往其中写入数据,另一个应用程序从中读取数据)来应用消息队列.消息队列平台更为稳定,因为它们通常拥有自己的安全机制.事务支持及其它功能.传输消息的路由功能是它的一个关键应用.MSMQ提供各种消息队列平台. MSMQ简介 MSMQ是Windows 2000.Windows XP.Window…
java PriorityBlockingQueue 基于优先级队列.的读出操作可以阻止. package org.rui.thread.newc; import java.util.ArrayList; import java.util.List; import java.util.Queue; import java.util.Random; import java.util.concurrent.ExecutorService; import java.util.concurrent.Ex…