WebSphere Messager Broker 介绍

MB概述

MB的全称是message broker,即“消息代理”。“消息”一词前几年比较火,消息中间件也卖的很火,当时似乎J2EE的产品都要跟“消息”、“中间件”扯上点关系,以彰显潮流。我觉得初学者只需记住“消息”的异步性即可,也就是“消息”和传统的网络连接、远程方法调用等的最大区别,就是你一旦发出消息以后,不用再管它的死活,中间件会处理一切事务,出了问题也会通知你,这样可以更好的分离业务逻辑。把消息当成邮件的话,那么传统网络连接就是由你去送信,而中间件则好比邮局,它来提供送信服务,并且可以跨国境、跨语言,完全不用你操心(相当于中间件可以连接异构平台),使用者只需等在家门口收信。

在说“代理”之前,先讲一下MQ的基本概念。MQ即message queue,消息队列,也就是IBM的主打消息中间件产品,IBM几乎所有SOA相关的产品,都是构建于MQ之上的,没有MQ强大的消息传输能力,那么IBM很多产品都做不起来。在这里不赘述MQ的功能,初学者只需把MQ当成一个非常可靠的传输通道即可,你只要往里面放东西,MQ就会把消息传到目的地。

那有了强大的MQ还要“代理”干什么呢?如果你用过MQ,或者类似的产品如apache的开源JMS产品“ActiveMQ”,就会发现,尽管用MQ不必考虑网络连接、平台异构,但是你在配置的时候、以及使用MQ编程的时候,都要指定目的地,比如设置IP地址。这样的程序依旧存在很大耦合性,万一某个组件的IP变了,所有跟他相关的组件都得改动,轻则修改配置文件、重则重写代码。这时“代理”的作用就开始凸显了。

所有组件的MQ队列都可以直接连接到MB上,MB相当于一个公共服务中心。MB接收所有消息,然后自动分析其中的内容,找到相应的目的地,进行路由转发,好比你在写信时,只需写明收信人的姓名、身份证,哪怕收信人搬到天涯海角,只要他在MB邮局中登记了,那MB就可以把信交给他,这样进一步地分离了业务和底层通信,我只需要知道业务概念上的“他”,就可以把消息交给他。此外,MB还可以进行消息转换,这就像是自动翻译信件,我现在可以用中文写封信给本拉登,我不需要知道他具体藏在哪里,信件就会自动翻译成阿富汗的文字,送到本拉登手里。

所以,代理的两个核心功能就是:“消息路由”和“消息格式转换”。MB本质上也是一个服务总线,所有的服务组件接入到MB中,服务将消息塞给MB,MB来决定怎么转发,这样让服务愈加成为一个独立的实体,和其他服务的耦合性进一步降低,从而达到SOA的境界。

MB初览

说了那么多大道理,终于开始讲到MB的具体内容了。下面的图片摘自IBM的红皮书,是MB的总体架构,我粗略的描述一下。

可以看到,MB里面有两大块内容,一个是toolkit,也就是开发环境,后面我们会讲到;还有一个是broker domain,即代理域。代理域里面有两个核心部件,一个是配置管理器configuration manager,一个是代理broker。

配置管理器其实很像MQ的队列管理器,或者是WAS的deployment manager,都是起到一个管理作用,在MB里当然是管理众多的broker了。我们平时对broker的管理、维护操作,其实都是通过配置管理器完成的。

代理broker是真正体现MB设计思想的地方,上面的图片中有像流程图一样的东西,即message flow,是消息的流程图(从什么地方流进来,再从什么地方流出去);还有messageset,即消息集,说白了是描述消息长什么样子,它的结构、内容是怎样的。其实,message flow对应了上文所说的“消息路由”,而message set则对应“消息格式转换”,你肯定要清楚两种消息的格式,才能定义互相转换的规则。

MB的外围是各种类型的应用程序,他们接入MB的方式可以多种多样,可以是Webservice,也可以是数据库、文件、HTTP连接,等等,不一定局限于MQ

圆柱体代表的则是数据库了,这是尽IT人皆知的。因为MB的很多信息,包括配置信息、以及broker的运行时信息都要通过数据库保存。broker本身也可以操作数据库,你可以在流程的某个节点上增删查改某个数据库

下图是WMBT(webspheremb toolkit)的界面

可以看到,WMBT是基于eclipse的,所以大部分java开发者应该能很快上手。开发MB程序和开发J2EE程序差不多,也是先新建一个项目,然后编辑,最后部署。

1号区域是一个消息流,可以看到非常直观:从MQ读入——计算(转换成web service格式)——发送http请求到web service的url——计算(转换回MQ消息格式)——放入MQ

2号区域是节点选择面板,MB自带了几十种节点给我们选择,同时我们也可以自己创建节点

3号区域是属性面板,当你选择某个节点时,可以在其中编辑节点的属性

4号区域是域连接面板,开发好的消息流和消息格式,必须首先在MBT中连接到对应的配置管理器,再将打包好的流程部署到对应的broker中,这个过程也可以由命令行完成

5号区域则类似eclipse的项目集合,里面是所有的MB项目

总结

还是打个比方。首先,我们把MB看做一个功能超级强大的路由器,它支持多种接入方式,也就是MB路由器上的端口有很多种,MQ是比较常用的一种方式,所以MQ就像常用的RJ45接口的5类双绞线。但同时MB还支持JMS、SCADA等各类接入标准。在MB内部,我们管理员定义好路由规则(编写消息流)。其次,从MQ过来的信号,可以转换成其他网络协议的信号(消息格式转换),这类似于网桥功能,可以跨越不同网络。同时,MB的性能非常好,可以进行大数据量交换,这一点又很像是交换机。最后,MB可以理解业务逻辑,它的路由不仅像路由器那样针对消息头进行路由,还可以根据消息的业务内容进行路由,酷似应用网关。

时间: 2024-10-24 10:40:47

WebSphere Messager Broker 介绍的相关文章

WebSphere Messager Broker 学习资源

专门整理一下最近用到的一些学习资源,并稍作评论 一.           <精通Websphere Message Broker> 其实对这本书,我是爱恨交加.一方面,它是仅有的一本中文的纸质图书,也是我翻得最多的一本参考书:另一方面,它也就是参考书,作为入门的图书太难了,编排也不怎么样.但是总的来说,开发MB还是少不了它呀,当你要查某个节点的用法.某个ESQL函数的参数,大部分人还是倾向于翻书而不是翻一堆英文资料吧 二.           Websphere Message Broker

WebSphere Messager Broker 安装配置

准备工作 MB的运行依赖于MQ,所以首先要安装MQ,MQ的具体安装过程略,并且以后假设你已经有关于MQ的基础知识,比如队列管理器.队列.通道,等等. 安装好MQ后,创建一个队列管理器(简称QM),名为TESTQM(MQ里面的对象是区分大小写的,为了避免不必要的麻烦,这里统一用大写,以下划线分隔),这个队列管理器是MB运行的基础,当你用MB的脚本创建配置管理器.代理和执行组时,都要指定QM的名字 然后创建运行时数据库,名为TESTDB,MB自带了derby,你也可以选择DB2,注意此处的数据库是指

IBM Websphere Message Broker(MB) 教程系列-(2) 创建Broke

Toolkit界面初识 上面的界面是Toolkit启动后的第一个界面,我们最常用的有5个区块: 菜单区:系统菜单区,包括所有的操作. Broker开发区:开发工程树结构就在此区,这里最常用的有创建应用程序和创建库,单击右键将弹出所有功能. Brokers区:Broker管理区,我们在部署时需要用到此区,这里MB8BROKER是我们在安装完成后创建的缺省Broker. 属性区:显示当前工作节点的属性信息,我们在设计流程时会经常用到此区域. 工作区:此区用于显示及编辑相应的文件,大多以图形显示. 具

WebSpehre Messager Broker 数据库操作

一.          ODBC数据源 MB是通过ODBC来操作数据库的,因此首先要配置好操作系统本身的ODBC数据源.Windows中配置ODBC很容易,在此不赘述细节.需要注意的是,选择Oracle数据源驱动时,一定要选择下图所示的MB自带的Oracle驱动 我在创建ODBC时,一开始没有在本机安装Oracle,结果ODBC无法使用,报告"由于系统错误126,驱动程序无法加载",问了IBM的技术支持也没有答案,后来干脆在本机安装了一个Oracle(不必运行),问题就解决了,估计MB

websphere message broker 配置ODBC连接(oracle)

1.Windows环境配置 步骤: 1.单击开始> 控制面板 > 管理工具 > 数据源 (ODBC) 2.单击系统DSN 选项卡,并单击添加 3.配置新建DSN 4.关闭ODBC配置,修改注册表单击启动> 运行 输入 REGEDIT,并单击确定. 打开在注册表编辑器中, 浏览到:HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI找到新建的DSN,并右键单击DSN 条目.选择新建> 字符串值. 字符串:WorkArounds 值:53687091

WebSphere Message Broker MQOutput动态指定多个输出

因现ESB项目都加入了动态配置,接到一需求,通过配置文件或者数据库配置,在一个消息流程定义上动态指定多个输出节点. 以下做了一个简单的小示例. 先定义了一个简单的消息流,MQ输入节点到MQ输出节点. 1.MQ输入节点指定队列名称:XML.IN 2.Compute 计算节点指定输出 队列XML.OUT .WA.OUT SET OutputLocalEnvironment.Destination.MQ.DestinationData[1].queueName = 'XML.OUT'; SET Out

[Microsoft][ODBC 驱动程序管理器] 驱动程序不支持此功能

问题: 运行Websphere Messager Broker 样本时 Database节点访问数据报错, [Microsoft][ODBC 驱动程序管理器] 驱动程序不支持此功能. 解决方法: 于是打开 控制面板 -> 管理工具->数据源ODBC->选中数据源->配置->高级-> 把Enable SQLDescribeParm 和 Procedure Return results的复选框勾上即可. 重启broker, 问题解决.

MQ原理、使用场景、IBM WebSphere MQ介绍及spring集成配置

一.MQ简介及特点 MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过写和检索出入列队的针对应用程序的数据(消息)来通信,而无需专用连接来链接它们.消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术.排队指的是应用程序通过队列来通信.队列的使用除去了接收和发送应用程序同时执行的要求.其中较为成熟的MQ产品有IBM WebSphere MQ.RabbitMQ .ZeroMQ

几种ESB(企业服务总线)介绍

ESB(Enterprise Service Bus,即企业服务总线)是传统中间件技术与XML.Web服务等技术结合的产物.ESB提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素. 企业服务总线ESB就是一种可以提供可靠的.有保证的消息技术的最新方法.ESB中间件产品利用的是Web服务标准和与公认的可靠消息MOM协议接口(例如 IBM的WebSphere MQ.Tibco的Rendezvous和Sonic Software的SoniCMQ).ESB产品的共有特性包括:连接异构的MOM.