K,口丹
Appftcation口航匕今*㈣
NewJersey
*1
«$QAPa»
TraderMamHSLockfQty#
TraderHerreStock.'Qly
斗Ti"•冲
记口詡■HH
■软沪■■iSKrt**
TradeiNilritj#Stot:
IdKlty#
DMoiPnce伍)_
Appfication
London
•'PlTGWB爼叫內阿・
■iTrndiii>
'img*軒.-
Application
Liverpool
9、MessageBroker产品家族
IBM划分基础产品和高端产品的方式可以学习
phereBlM
Rr
时ITies
•fjfistfrdC]
•G^ntralman^Qoin^en【inS
COfTffTlOflCOuCIMSCdistftbut^dcploynBtothel^racstenterpfis^
POlMt^lO-^ClAlStOfl
Newtfi电ruw1吕*?
ngtn^
*lndud«4aRW3iMamgeBrokatfunctionAktyptu鷲“.
Rul**FormattingEngtn*from忡*wEri>otN*Cwov1cf
Tf^psform^t^on.loutirtgjnddat«iint^ratic*n
'includesalWPIEvent19rokerfunctionality+
*ConumQndtabte'driv^nroutingcDpnbiltti«
*^owerfurtngrn#for
tnnsfofrrMtiafiwm|tfNMwukrt*0rBtk>n
*XSLTwigin*forXML1rMY*foiTTutlon
*M«ug«flhc-rtngandm*«3g«vvafthounng
*W«bS*rvi“£{HTTP/SOAP)pfotocolsupport
diruj
Windows2000/XP
*MX
•Sotarti
•HfJUK
-LinuxUn愉I和HizJ3*rJ«)
*rX>S
VVfPtniitentandnon-pwsisruntJMS.MQI.andAMAPlfAsiutedme»agi(*g
KAcJi*nl
Clustering
HiqIipotfoimfn.QC'muM|-pic(<>c<>1$ventswitch
*SupportsW*bSpHef«MQpomt-tc-porntfundk>n«lrty*.
*High-p^rrocmancatopicAndeorttent-bas«dpubir^h/tulHcnbe
*MuNi-protocoli:
Enterpckt,Mobil*・
Taiemetry,andMufticast
protocol
*Ext«nnbl#p4UQ-inir^hittctur*
10、MessageBroker核心概念
I)消息处理(Messageprocessing)
i.处理消息中的独立项
11.物理和逻辑消息模型
m)转换和路由(TransformationandRouting)
i.消息操纵(MessageManipulation)【我理解为各种处理,类似于handle】
ii.基于内容的路由(Contentbasedrouting)
n)简单的,清晰的编程模式
i.可视化编程模式:
消息流
11、MessageBroker概况
MQQu«u*Manager
UMugt和oh
WebSpbeeBuftinettlAte^rslion甘en旳eBroker
RauteT^ibfl
□Receiveandroutingmessages
口Transformarne$$agefromonesyntaxtoanother(ortwoothersar.„)
□Publishamessagetosubscribers
QAccessanexternalDBtoaugmentamessageorstorett
口Respondtoeventsanderrors
从这个处理流程中,可以看出MB的基本功能:
1)收到并路由消息
2)转换消息到另一格式,或者到多个其他格式
3)给订阅者发布一个消息
4)访问外部数据库处理增量消息或存储
5)应答事件和错误
12、MB的组件——部署时
Klessa^e
BrokerComponents
洌电BraktfiIboM
Broker有Domain的概念,另外Messagesets和Messageflow都运行在
Broker之内,多个Broker部署在同一个BrokerDomain内,在同一个
Domain内通过Configuration来进行配置。
13、MB的组件——运行时
1)Broker(消息代理):
是MB的消息处理引擎,它提供MB的所有运行时服务。
2)ConfigurationManager(配置管理器):
CM是工作台,配置存储库和
Broker之间的一个接口,它维护BrokerDomain的配置信息,向Broker提
供初始化配置信息以及之后的变化信息。
配置管理器是MB用于管理那些组成
BrokerDomain的全部部件和资源的核心运行时部件。
3)BrokerDomain(消息代理域):
共享相同配置的若干Broker组成一个消息代理域,每个消息代理域由一个唯一的配置管理器来控制,在一个消息代理域中,可以创建、启动一个或多个Broker,和一个可选的UserNameServer。
4)ExecutionGroup(执行组):
执行组是若干消息流的组合,是消息流运行引擎。
每个执行组是一个独立的进程,这样,在同一个执行组中的消息流可以做到在运行时相互独立。
在一个执行组内部,消息流在不同的线程池内运行,为了提高性能,我们可以通过设置每个消息流的运行实例的个数来指定每个消息流的线程池的大小。
5)UserNameServer(用户名称服务器):
任何关键系统的一个重要的组成部分就是通过提供一个有效的安全机制来确保资产安全的能力。
用户名称服务器是可选的运行时组件,它提供Publish/Subscribe操作相关的用户和组的安全控制。
6)MessageFlow(消息流):
在MB中对消息的运算处理、格式转换和路由等功能是通过消息流实现的,每个消息从输入MB到从MB中输出,都将被一个消息流处理,然后发往目的应用系统。
消息流由各种消息处理节点(MessageProcessingNode)组成,消息处理节点可对消息进行各种处理操作,节点与节点相连,便组成了一个消息流。
7)MessageProcessingNode(消息处理节点):
在MB中,对消息的所有计算和处理是通过消息节点实现的,消息节点实际上是被Broker运行环境调用的动态链接库(DLL),通过ESQL语句对消息进行操作,通过对消息节点属性的客户华处理,将使节点能够对流经自己的消息执行特定的功能。
8)ESQL:
在MB中,消息流开发使用的使ESQL语言。
ESQL是对SQLV3的扩展,除了用于数据库的操作之外,它还可以操作消息数据,包括GenericXML和MRM格式的消息。
14、MessageFlows【简直就是针对消息的工作流】
15、MessageProcessingNodes(6.0在此基础上又有增加)
)ces
R^Mirne^nput
|」Real-timeOptimiwdFiow
]/」MQOptimizedFw
、A(K)r«^ateRequest
E电Ag$reg«t«R®ply
>OatilnKrt
41D«UD«l«teIDataUpdate^rehcuM
MQOutput
-*|RauteToLabel
^MQRtply
Publication
軽]MQwOutput
it.]Throw
CICSPragrifTiCiil
&CADAOutpul
^HTTPReply
fcjTryCatch
*FlowOrder
*jFilter
IJJtlJtl.剧
VSAMFtteAcee&s
Custom...C++.J&va
从我的观点来分析,最重要的节点:
a)MQInput&MQOutput
b)HttpInput可以做WS服务,HttpRequest可以去访问WS
c)Publication用于发布
d)ESQL语句节点,可以用于手工写ESQL,属于万能的节点。
e)Mapping,消息到消息和消息到DB的映射
f)Filter,实现if-else。
返回4种状态:
failer,true,false,unknow。
g)RouteToLaber配合Label,相当与case语句。
h)TryCatch和Throw
i)Trace,用于打印调试信息。
MB也提供命令行调试方式。
j)AggregateRequest、Reply、Control,聚合
新版本中增加了
a)Timer节点
b)JMS节点
c)
16、MBToolkit
17、ESQLeditor
18、MessageSetDevelopment
19、Mappingeditor
Mappingeditor
20、Deployment
MB需要打包成bar包,这具有更强的灵活性,更高的性能,当然要稍微麻烦一
些。
自己开发的产品,打包、部署一定要简单,最好能支持热部署。
Messageflowapplicationdeployment
・Thefollowingfigureshowstheflowofeventsduringadeployment
沁f昌
►s
corapifld
do*Iorriti
depwtdson
cfecboHBryI(dtchonifyl吓yI_I*SJ
dffpioy
OOfifigyrjbon
21、mqsideploy命令行部署工具,较大型的项目,需要做开发环境、测试环
境、联调环境、生产环境等。
生成脚本可以多次执行。
这就是大型软件和一般软
件的区别之一。
・Brokercommands
』mqsicreatebrokercommand—Createanewbrokermqsichangebrokercommand•Changeabrokersproperties
*■mqsideletebrokercommand-Deleteabrokermqsireloadcommand-Stopandrestartbrokerexecutiongroupsmqsi_setupdatabasecommand-SetupDBonUNIXmqstcbrreportcommand一Identifyappsusrngcontentbasedfilters
■ConfigurationManagercommands
rnqsjcreateconfigmgrcommand™Createanewconfigmanager
、mqs^hangecorrfigrngrcommand亠Changeaconfigmanagermqsideleteconfigmgrcommand-Deleteaconfigmanager
■UserNameServercommandsmqsicreateusernameservercommand-CreateanewUNSmqsichangeusernamEsewgrcommand-ChangeUNSpropertiesmqsideleteusernameservercommand-DeleteaUNS
Startandstopcommands
*mqsistopcommand-StopWBIMBprocesses
•Listandtracecommands
*mqsibstcommand-ListWBIMBconfiguredprocesses
vmqsichang时racecommand-Start/Stoptrace
“mqsiformatlogcommand-Formattrace
#mqsireadlogcommand*Extracttrace
”mqsireporttracecommand-Displaycurrenttraceoptionsineffect
・MQSeriesPublish^Subscribeinteroperabilitycommands(mqsiclearmqpubsubcommand一RemoveP/Sbrokerrelations
7mqsijoinmqpubsubcommand-AddabrokertoaP/Snetwork丿mqsilistmqpubsubcommand-DisplayP/Sneighbours
・Migrationcommands
、mqsimigratemsgflowscommand一Migratemsgflowsfrom21』mqsimigratemsgsetscommand*Migratemsgsetsfrom2.1mqsimigratetabfescommand-Migratebrokerconfigrrigrtables
22、MB性能报告
•Theservermachinehardwareconsistedof
卜An(BMM80Model7026with5*500MHZRS64-IIIProcessors
*Throe80GBSCSIharddriven.
t4GBRAM.
卜1GbEthernetCard,
卜12*9.1GBSSAdiskswithFastWritenonvolaUecacheadapter,
・Theservermachinesoftwareconsistedof:
*A!
X5.1L
*WebSphereMQV53
*WebSphereBustnossIntegrationMessageBrokerforAIXVSCSD2
*
DB2forAIXV6J.
MaximumMessageBrokerThroughput-MessageRouting
•Throughtheuseofafilternoderti$possibletoimiplementsimplemessagerouting
•InordertoillustratethistypeofprocessingamessageflowconsistingofanMQInputnode,aFitternodeandanMQOulputnodewasdefined
•Sufficientcopiesofthemessageflowwereruninordertofullyutilizetheservermachine
&Withthismessageflowitwaspossibletoprocessapproximately41601KBnonpersistentmsgs/second
4160个1KB的包/秒,建议交易用的包在1—2K。
MQ消息持久,是指写文件,保证服务宕机的情况下消息的完整性。
而非持久性能更高。
比如:
银行ATM最大等待时间60妙,超时后消息本身就没有意义,可以选择非持久。
MQInput/MQOutputMessageFlow1
・AmessageflowconsistingofasingleMQInputandMQOutputnoderepresentsthestmplestformofmessageinputandoutput
・Asinglemessageflowwasdehned,consistingofan袖QlnputnodeandMQOutputnode.
・ThefigurebelowshowstheresultsthatwereobtainedwhenrunningthemessageflowwithvaryingmessagesizesandpersistenceTherewasasmgteinstanceandsingleexecutiongrouprunningthemessageflow
Persist
MagSize
Msgs/sec
%CPUBusy
CPUms/msg
no
1024
260100
34.00
105
no
4096
2127.00
3867
1.45
I
24、ParallelProcessingOption
MB可以通过多instanee