1、ESB培训一培训一q什么是什么是ESBqESB在企业中的应用在企业中的应用q消息中间件简介消息中间件简介qMQ基础知识基础知识q实验实验目录目录什么是什么是ESBESB(EnterpriseServiceBus)企业服务总线)企业服务总线ESBisasoftwarearchitectureconstructwhichprovidesfundamentalservicesforcomplexarchitecturesviaanevent-drivenandstandards-basedmessagingengine(thebus).DeveloperstypicallyimplementanES
2、Busingtechnologiesfoundinacategoryofmiddlewareinfrastructureproducts,usuallybasedonrecognizedstandards.ESB是一种能够连接几百个应用端点的基于是一种能够连接几百个应用端点的基于标准的、面向标准的、面向服务的骨干服务的骨干网。网。它是传统中间件技术与它是传统中间件技术与XML、Web服务等服务等技术结合的技术结合的产物产物,是是一种在松散耦合的服务和应用之间标一种在松散耦合的服务和应用之间标准的集成方式准的集成方式什么是什么是ESB多种编程多种编程语言语言多种平台多种平台多种编程多种编程模式模
3、式多种信息多种信息格式格式多种交付多种交付模式模式什么是什么是ESB协议适配、转换协议适配、转换报文转换报文转换路由路由服务中介服务中介系统连接系统连接q什么是什么是ESBqESB在企业的应用在企业的应用q消息中间件简介消息中间件简介qMQ基础知识基础知识q实验实验目录目录ESB的应用几种的应用几种ESB产品产品IBMMessageBroker(baseMQ,C)OracleESBTibcoESBYak(baseMule,java)ServiceMix(apacheanopensourceESB)其他其他ESB产品产品应用于总行的多应用于总行的多个系统个系统应用于省人行、应用于省人行、商行的多
4、个系统商行的多个系统ESB在企业的应用一在企业的应用一1.公安部系统采用公安部系统采用.net体系结构体系结构2.多家商业银行多家商业银行3.多种报文规范多种报文规范ESB在企业的应用二在企业的应用二1.3000多家地税多家地税2.5000多家商业银行多家商业银行3.多种报文规范:多种报文规范:Tips报文规范,国税报文规范等报文规范,国税报文规范等消息中间件简介消息中间件简介MB是建立在是建立在MQ基础之上的。消息中间件对于基础之上的。消息中间件对于MB何等的重要,可靠的传输是前提、是基础。何等的重要,可靠的传输是前提、是基础。消息中间件(消息中间件(MOM,MessageOrientedM
5、iddleware):提供可靠传输的产品):提供可靠传输的产品vMQ、TongLinkQ、MSMQ、ActiveMQ等等v负责建立网络通信的通道,进行数据或文件的发送。屏负责建立网络通信的通道,进行数据或文件的发送。屏蔽网络通信的复杂度蔽网络通信的复杂度vTips(MQ)、支付系统()、支付系统(MQ)交易中间件:联机交易类产品,提供交易可靠性交易中间件:联机交易类产品,提供交易可靠性vCICS、Tuxdeo等等v银联(银联(Tuxdeo)、大额支付()、大额支付(CICS)应用服务器:应用服务器:一般是基于一般是基于j2ee工业标准的工业标准的vWAS、Weblogic、Jboss等等q什么
6、是什么是ESBqESB在企业的应用在企业的应用q消息中间件简介消息中间件简介qMQ基础知识基础知识q实验实验目录目录MQ基础知识基础知识资源、对象资源、对象队列管理器(队列管理器(Qmgr)队列(队列(queue)通道(通道(channel)侦听器(侦听器(listener)消息(消息(message)MQ基础知识特性,全局属性基础知识特性,全局属性MQ:异步方式,非同步(可以模:异步方式,非同步(可以模拟同步)拟同步)MQ的对象名是大小写敏感的,因的对象名是大小写敏感的,因此在定义对象时,需要仔细选择好此在定义对象时,需要仔细选择好大小写字母。大小写字母。队列管理器、队列、侦听器等(队列管理
7、器、队列、侦听器等(48个字符)个字符)通道(通道(20个字符)个字符)MQ基础知识概念基础知识概念队列管理器(相当于数据库)队列管理器(相当于数据库)一一个基本的独立的执行个基本的独立的执行单元单元,资源的容器。,资源的容器。一一台机器上可以运行一个或多个队列台机器上可以运行一个或多个队列管理器管理器队列(相当于表)队列(相当于表)用于用于存储消息存储消息的数据结构的数据结构v本地队列、传输队列(本地队列)、远程队列、别名队列等本地队列、传输队列(本地队列)、远程队列、别名队列等v持久(数据落地)、非持久(数据部分落地,主要在内存)属性持久(数据落地)、非持久(数据部分落地,主要在内存)属性
8、通道通道提供提供从一个队列管理器到另一个队列管理器的通信路径从一个队列管理器到另一个队列管理器的通信路径v发送发送方通道、接收方通道、服务器连接通道(应用程序)等方通道、接收方通道、服务器连接通道(应用程序)等侦听器侦听器v开放的端口开放的端口消息(相当于数据)消息(相当于数据)v单个单个最大最大消息长度为消息长度为100MB,缺省,缺省4M,依赖队列等相关配置,依赖队列等相关配置MQ基础知识常用命令基础知识常用命令显示队列管理器:显示队列管理器:dspmq查看查看MQ产品版本:产品版本:dspmqver查看查看MQ错误日志:错误日志:mqrcerrorcode创建队列管理器:创建队列管理器:
9、crtmqmQmgrcrtmqm-ldc:/log-lc-lf5120-lp10-ls5TEST1日志文件大小以日志文件大小以4KB页为单位指定页为单位指定创建后不能修改,如果修改只能修改创建后不能修改,如果修改只能修改-lp或者或者-ls这两个属性这两个属性启动队列管理器:启动队列管理器:strmqmqmgr停止队列管理器:停止队列管理器:endmqm-iqmgr删除队列管理器:删除队列管理器:dltmqmqmgr运行运行MQ命令控制台:命令控制台:runmqscqmgr放放入一个消息:入一个消息:amqsputQnameQmgr取出消息:取出消息:amqsgetQnameQmgrMQ基础知
10、识常用命令基础知识常用命令MQ基础知识目录结构基础知识目录结构队列管理器数据信息,包含异常队列管理器数据信息,包含异常代码范例等代码范例等队列管理器日志信息队列管理器日志信息JRE和和.jar等等命令、命令、dll等等MQ出口函数出口函数MQ基础知识实验基础知识实验两个队列管理器之间相互通信两个队列管理器之间相互通信QmgrB.Q3的定义,只的定义,只能放入消息能放入消息应用程序使应用程序使用用临时存储临时存储目标为远目标为远程队列管程队列管理器的消理器的消息的队列息的队列可放可取可放可取发送方:定义通信发送方:定义通信信息,主动信息,主动接收方:被动接收方:被动两者成对出现,名两者成对出现,
11、名称完全一致称完全一致问题:能否直接将消息放入传输问题:能否直接将消息放入传输队列?队列?MQ基础知识实验基础知识实验发送端配置发送端配置v远程队列远程队列远程队列(接收方本地队列)远程队列(接收方本地队列)队列管理器队列管理器传输队列传输队列v传输队列传输队列触发器数据(发送方通道)触发器数据(发送方通道)启动队列(启动队列(SYSTEM.CHANNEL.INITQ)v发送方通道发送方通道连接名称连接名称:ip(port)传输队列传输队列接收端配置接收端配置v本地队列本地队列v接收方通道,名称与发送方通道一致接收方通道,名称与发送方通道一致MQ开发开发javaMQAPI方式方式v采用采用MQ
12、接口进行开发接口进行开发JMS方式方式v采用标准采用标准jms规范规范通常采用通常采用.bind文件方式文件方式v采用采用IBMMQjms接口接口MQ小工具小工具rfhutil.exev用于本地的队列管理器用于本地的队列管理器rfhutilc.exev用于非本地队列管理器用于非本地队列管理器v需要设置一些信息需要设置一些信息MQ在项目中的使用:在项目中的使用:jms+MDB多个子系统间的连接多个子系统间的连接v子系统之间采用异步方式,之间通过报文交互信息来达到子系统之间采用异步方式,之间通过报文交互信息来达到松耦合松耦合提高系统并行度提高系统并行度v应用应用服务器不建议自己做多线程处理,容器无法管理服务器不建议自己做多线程处理,容器无法管理v常用手段如下:常用手段如下:Jms(javamessageservice)+MDB(MessageDrivernbean)例如日终批处理里的一些特定场景例如日终批处理里的一些特定场景MQ在项目中的使用在项目中的使用Asynbean谢谢!谢谢!