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插入数据库

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

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

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

    公司的技术平台在和某券商对接IBM MQ消息中间件时,发送到MQ中的消息多出了消息头信息:RHF2,造成消息的接收处理不正常.在此记录此问题的处理方式. 在IBM MQ中提供了一个参数 targetC ...

  2. 消息中间件及WebSphere MQ入门(转载)

    消息队列技术是分布式应用间交换信息的一种技术.消息队列可驻留在内存或磁盘上,队列存储消息直到它们被应用程序读走.通过消息队列,应用程序可独立地执行--它们不需要知道彼此的位置.或在继续执行前不需要等待 ...

  3. IBM Mq Spring JMS 的xml配置

    <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.spr ...

  4. IBM MQ 使用指南

    一.MQ基本操作 MQ中有几个很重要的组件:队列管理器(QueueManager).队列(Queue)和通道(Channel).其基本的操作方法如下:  1)创建队列管理器 crtmqm –q QMg ...

  5. (转)IBM mq基本使用

    一.下载7.5 Trial版本 http://www.ibm.com/developerworks/downloads/ws/wmq/ 这是下载网址,下载前先必须注册IBM ID,下载完成后一路Nex ...

  6. SUSE_LINUX 11 SP3 安装 IBM MQ 7.5

    0.环境介绍 mq7.5 suse linux 11 1. 上传安装包 上传安装包到 softWare/CI79IML.tar.gz 2. 安装证书 sh ./mqlicense.sh 输入 1 同意 ...

  7. IBM MQ 集成CXF 发送JMS 消息

    0.POM依赖 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w ...

  8. IBM MQ相关 ---- 系列文章

    原 IBM websphere MQ远程队列的简单配置 转 MQ7.5以后的权限问题解决 原 MQ--API总结 转 连接IBM MQ原因码报2035的错误解决办法 原 Java连接MQ的实例 转 通 ...

  9. 用IBM MQ中间件开发碰到的MQRC_NOT_AUTHORIZED(2035)问题

    我在一台工作站上面部署了MQ服务器,在MQ服务器中我建立了队列管理器MQ_TEST,在该队列管理器中我建立了一个本地队列MQ_Q以及一个服务器连接通道MQ_C,MQ_C中的MCA用户标识默认为空.同时 ...

随机推荐

  1. java的static类(静态内部类)(转载)

    转载自:http://www.jb51.net/article/74838.htm java中的类可以是static吗?答案是可以.在java中我们可以有静态实例变量.静态方法.静态块.类也可以是静态 ...

  2. sklearn文本特征提取——TfidfVectorizer

    什么是TF-IDF IF-IDF(term frequency-inverse document frequency)词频-逆向文件频率.在处理文本时,如何将文字转化为模型可以处理的向量呢?IF-ID ...

  3. C#实现bitmap图像矫正

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  4. hdu4633_Polya定理

    典型的Polya定理,还算比较简单,比赛的时候知道是Polya定理但是根本没留出时间去搞,有点小遗憾. 思路:根据Burnside引理,等价类个数等于所有的置换群中的不动点的个数的平均值,根据Poly ...

  5. C#基础原理拾遗——引用类型的值传递和引用传递

    以前写博客不深动,只搭个架子,像做笔记,没有自己的思考,也没什么人来看.这个毛病得改,就从这一篇开始- 最近准备面试,深感基础之重要,奈何我不是计算机科班出身,基础方面有些捉襟见肘.短期怎么补?做面实 ...

  6. Java开发桌面程序学习(三)——基于Jfoenix库的JFXDialog封装仿Android对话框的工具DialogBuilder

    对话框的封装使用 最近写了个JFXUtils,DialogBuilder也是包含在里面了 JFXUtils的Github 前言 登录需要弹出登录对话框,但是,Jfoenix库使用对话框比较难受,还得动 ...

  7. 对SpringMVC架构进行工程拆分遇到的问题总结

    经过一个月的开发,一个单一的SpringMVC教育类创业项目正式上线,随着时间的推移,业务流量逐渐增大,最近对这个单一的工程从零进行SOA分布式改造,改造包括dubbo改造,集成化部署.高可用集群,负 ...

  8. 《实战Java高并发程序设计》读书笔记

    文章目录 第二章 Java并行程序基础 2.1 线程的基本操作 2.1.1 线程中断 2.1.2 等待(wait)和通知(notify) 2.1.3 等待线程结束(join)和谦让(yield) 2. ...

  9. ssm中mapper注入失败的传奇经历

    最近因为要测试一个功能,需要用最短的时间来启动服务,开启测试程序,但平常所用的框架中已经集成了各种三方的东西,想着那就再重新搭建一个最简单的ssm框架吧. 搭建可参考:简单ssm最新搭建 搭建过程并不 ...

  10. vagrant+xdebug

    https://segmentfault.com/a/1190000007789295