消息中间件及IBM MQ

MQ 消息中间件:

中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。

中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。是连接两个独立应用程序或独立系统的软件。相连接的系统,即使它们具有不同的接口,但通过中间件相互之间仍能交换信息。

执行中间件的一个关键途径是信息传递。通过中间件,应用程序可以工作于多平台或 OS 环境。消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。

面向消息的中间件 <百度百科:中间件>

MOM指的是利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可在分布环境下扩展进程间的通信,并支持多通讯协议、语言、应用程序、硬件和软件平台。流行的MOM中间件产品有IBM的MQSeries、BEA的MessageQ等。消息传递和排队技术有以下三个主要特点:

1、通讯程序可在不同的时间运行

程序不在网络上直接相互通话,而是间接地将消息放入消息队列,因为程序间没有直接的联系。所以它们不必同时运行。消息放入适当的队列时,目标程序甚至根本不需要正在运行;即使目标程序在运行,也不意味着要立即处理该消息。

2、对应用程序的结构没有约束

在复杂的应用场合中,通讯程序之间不仅可以是一对一的关系,还可以进行一对多和多对一方式,甚至是上述多种方式的组合。多种通讯方式的构造并没有增加应用程序的复杂性。

3、程序与网络复杂性相隔离

程序将消息放入消息队列或从消息队列中取出消息来进行通讯,与此关联的全部活动,比如维护消息队列、维护程序和队列之间的关系、处理网络的重新启动和在网络中移动消息等是MOM的任务,程序不直接与其它程序通话,并且它们不涉及网络通讯的复杂性。

IBM 消息中间件概述:

MQ 消息中间件为用户和应用开发人员提供了一种直接,简单的手段以实现应用系统在不同操作系统平台之间稳定可靠地传递,交换重要的数据和信息,确保消息不丢失/不复传。 MQ 消息传输产品和企业 IT 应用的关系,就如同电子邮件和人一样,是 SOA 时代企业 IT 应用之间相互传递消息的最重要工具。但是,与由于网络原因而经常丢失消息的脆弱的电子邮件系统不同的是,MQ 消息中间件强大而稳定,永远能够确保每一个字节的消息都能够被正确地传送到目的应用之中。

---------------------------------------------------------------------------

消息中间件有点像操作系统的消息队列,可以在你的多个数据中心间进行数据的传递。

您使用消息中间件的时候,分以下几个步骤,

1,  铺设消息管道,就是定义多个队列,A到B,B到C,A到F;

2,利用其提供的简单接口编写数据到消息包的处理,把你的数据打成消息数据包,把消息数据包还原成你的完整数据。

3,根据数据内容把不同的消息压入到不同的队列,送往不同的目的地

MQ的操作程序:

第一步是让应用程序与队列管理器连接。它通过 MQConnect 调用来进行此连接。

下一步使用 MQOpen 调用为输出打开一个队列。

然后应用程序使用 MQPut 调用将其数据放到队列上。

要接收数据,应用程序调用 MQOpen 调用打开输入队列。

应用程序使用 MQGet 调用从队列上接收数据。

中间件的简单的例子

有这样一个需求,sap有一组hr的相关信息,比如姓名,工号等等要求显示到一个portal上面,供user使用 查看信息。

数据怎么从sap到portal呢,可能的一种情况是,使用一个中间件,通过rfc或者idoc把相关信息从sap取出来,整合以后在通过jdbc插入到 portal的后台db里去。

这就是一个中间件参与数据整合 协同的简单过程。这样一个过程是由中间件完成的。所以简单的说,中间件就是在异构系统间起数据传输,整合作用的一个软件。

以刚才的例子为例,看看什么是消息中间件:

如果是消息中间件,就要把刚才例子中的hr数据看成一个消息,具体的数据结构可以根据需要和开发平台自己来定义。把从rfc出来的数据,先形成一个消息,然后发布到一个消息队列里面,然后再通过一定规则去取这个消息解析再使用jdbc插入数据库

这个过程可以是一对一,以可以是多对多。也许上面这个简单的例子并不能体现消息中间件的优点,但是在复杂的网络环境下,例如多个通讯方式,多个业务系统之间进行消息交互,他的优点是显而易见的。

时间: 2024-10-10 15:09:25

消息中间件及IBM MQ的相关文章

IBM MQ消息中间件jms消息中RHF2消息头的处理

公司的技术平台在和某券商对接IBM MQ消息中间件时,发送到MQ中的消息多出了消息头信息:RHF2,造成消息的接收处理不正常.在此记录此问题的处理方式. 在IBM MQ中提供了一个参数 targetClient,可以通过此参数来控制jms消息中是否启用该消息头.当采用jms 作为IBM MQ的client时,在消息目标(队列名或主题名)后添加该参数即可,格式为: topic:///{目标名}?targetClient=1 targetClient=1时:消息中不会包括RHF2消息头:target

运维文档分享(2):IBM MQ运维使用手册

前言:最近整理电脑,发现之前写的几篇生产上的运维测试文档,特来分享. 一.测试环境说明 本次测试linux端和windows端主要参数配置如下:Linux:操作系统版本:SUSE Linux Enterprise Server 10 SP4    32bitMQ版本:7.1.0.3Ip地址:192.168.0.151 Windows:操作系统版本:Windows 7旗舰版SP1 32bitMQ版本:7.1.0.3Ip地址:192.168.0.111 二.MQ简介1)消息中间件概述    消息队列

Java连接IBM MQ

package com.hometest.IBMMqTest; import java.io.IOException;import java.io.UnsupportedEncodingException; import com.ibm.mq.MQEnvironment;import com.ibm.mq.MQException;import com.ibm.mq.MQGetMessageOptions;import com.ibm.mq.MQMessage;import com.ibm.mq.

IBM MQ学习过程问题汇总

IBM MQ使用过程问题汇总----------------------------------------------1. 客户端发送消息时出现2035问题的解决过程####环境:win7系统administrator用户,WebSphereMQ8.0####测试:执行命令"amqsputc.exe Q1"a---按照教程添加"服务器连接"通道时为MCA指定用户名.无效:b---执行runmqsc命令,输入alter qmgr chlauth(disabled)禁

IBM MQ介绍

转自:http://hi.baidu.com/lubezhang/blog/item/bd308b3b7ecce3ec14cecb4f.html IBM MQ(IBM Message Queue)是IBM的一款商业消息中间产品,适用于分布式计算环境或异构系统之中.消息队列技术是分布式应用间交换信息的一种技术.消息队列可驻留在内存或磁盘上,队列存储消息直到它们被应用程序读走.通过消息队列,应用程序可独立地执行--它们不需要知道彼此的位置.或在继续执行前不需要等待接收程序接收此消息. MQ基本概念

连接IBM MQ原因码报2035的错误解决办法

我们的系统使用了ibm mq,用户用来向国家局上报文件和接收文件,前几天用户说上报一直不成功.由于 开发这块程序的人已经辞职了,我觉定在我的机器部署一套,研究一下.我的思路: 在我的机器上安装mq,建立两个队列,一个用来接收,一个用来发送;在另外一台机器上,发布应用程序,通 过java client向我的机器的队列发送消息和接收消息. mq安装成功,队列管理器.队列.通道也都建起来了,用mq自带的api检测程序检测也成功了. 接下来,在另外一台机器上通过程序发送消息,结果就是不行,总是报原因码是

使用Loadrunner对IBM MQ进行性能测试

一.概述 使用Loadrunner对IBM MQ进行性能测试,需要用到java vuser以及java编码知识.此次先介绍什么是IBM MQ,然后java vuser的使用与配置细节,最后介绍IBM MQ的测试脚本. 二.IBM MQ介绍 IBM MQ(IBM Message Queue)是IBM的一款商业消息中间产品,适用于分布式计算环境或异构系统之中.消息队列技术是分布式应用间交换信息的一种技术.消息队列可驻留在内存或磁盘上,队列存储消息直到它们被应用程序读走. 通过消息队列应用程序可独立地

IBM MQ 集成CXF 发送JMS 消息

1.修改wsdl 协议类型为 jms 替换 <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> 为 <soap:binding style="document" transport="http://cxf.apache.org/transports/jms"/> 2.根据wsdl生成服务端代码

spring监听与IBM MQ JMS整合

spring xml 的配置: 文件名:applicationContext-biz-mq.xml [html] view plain copy print? <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001