mq配置和编程最佳实践

mq配置和编程最佳实践

ID:15392260

大小:53.50 KB

页数:7页

时间:2018-08-03

mq配置和编程最佳实践_第1页
mq配置和编程最佳实践_第2页
mq配置和编程最佳实践_第3页
mq配置和编程最佳实践_第4页
mq配置和编程最佳实践_第5页
资源描述:

《mq配置和编程最佳实践》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、MQ配置和编程最佳实践对于MQ的使用,主要会涉及到MQ系统本身的配置和MQ应用程序的开发两方面的工作。为了帮助大家更好地使用MQ,本文将就MQ配置和编程中的一些注意事项和技巧与大家探讨,并希望与大家分享这方面的一些最佳实践(BestPractice)。第一部分:有关MQ对象配置的最佳实践对于MQ系统配置,我们要规划MQ通讯网络,确定系统的拓扑结构,确定各种对象的属性和命名规则并创建所需的各种对象等,首先,我们谈一谈在系统建设之初,如何设计和定义MQ的各种对象。1、有关队列管理器:创建队列管理器时,应考虑的因素主要有:1)队列管理器的日志类型以及

2、日志文件的大小和个数,要根据用户数据量的大小、各个队列上的消息总容量,来计算日志的总容量,以免在系统运行过程中出现日志写满的情况;2)应该为队列管理器指定和建立死信队列;3)对最多打开句柄数MAXHANDS(缺省为256,如果您需要多于256个应用程序同时连接队列管理器,应增大该值),最大消息长度MAXMSGL,最多的未提交的消息个数MAXUMSGS属性(缺省为10000,如果您使用了消息分段或分组,某个大消息的分段个数超过了10000,应增大该值)的考虑;4)创建完队列管理器之后,应修改队列管理器的配置文件,考虑有关TCP和通道有关的参数的配

3、置,举例如下:TCP: KeepAlive=Yes Channels: AdoptNewMCA=ALL PipeLineLength=2 MaxActiveChannels=2002、有关队列:对于队列的属性,应该考虑的因素主要有:1)永久性和非永久性设置:尤其要注意的是DEFPSIST属性的缺省值为No,若要保证消息的安全可靠,必须将其设置为Yes;2)对于本地队列和传输队列,要考虑队列的最大深度MAXDEPTH(缺省为5000,应根据实际情况计算该值),队列中每个消息的最大字节数MAXMSGL的配置。3、有关通道:对于通道的属性,应该考虑的

4、因素主要有:1)确定通道的运行方式采用长连接的方式还是触发的方式,通常,对于需要频繁启动的通道,不适宜采用触发的方式。若采用触发方式启动通道,触发类型应为FIRST;2)对于发送类型的通道,要考虑通道的断开间隔(DISCINT)、短重试次数(SHORTRTY)、短重试间隔(SHORTTMR)、长重试次数(LONGRTY)、长重试间隔(LONGTMR)、批处理大小(BATCHSZ)的配置。第二部分:有关MQ程序开发的最佳实践通常大家在使用MQ时,一般在系统设计之初只考虑MQ的系统配置,而很少提前考虑应用程序编写的指导原则,往往是边写边想,边想边写

5、,边写边改,使得开发效率和质量都比较低,为了使大家更快、更好地开发出MQ应用程序,在该部分我们给出与MQ程序开发相关的一些最佳实践,供大家参考。这里我们无法做到面面俱到,并且由于每个用户的具体需求不同,每条原则都不能一概而论,但是从普遍意义上可以作为您的参考。为了更好地掌握和了解MQ编程的技巧,我们首先要熟悉MQ的消息通讯模式,这将帮助你更好地理解MQ编程的最佳实践。通常,MQ有两种通讯模式,即数据报(Datagram)方式和请求/应答(Request/Reply)方式:其中,Datagram方式通常又被称为"SendAndForget"(发送

6、/忽略),是最简单的通讯模式,应用程序只需在创建完消息之后,利用MQ的API将消息发送到队列中,它充分利用了MQ确保消息传输,并且传一次且仅传一次(onceandonceonly)的优势,发送端应用程序无需关心消息何时被处理。Request/Reply(请求/应答)方式相对复杂一些,在消息发出之后,你需要等待对方的处理结果,在这种情况下,你通常需要考虑其他一些问题,如:等待应答的时间是多少? 如果没有收到应答,是否再次发出请求? 应答发出之前是否会有数据库操作或其他交易被执行? 本次请求/应答过程的会话(session)信息是否需要被保留?通常

7、,我们要根据用户的需求来决定采用何种通讯模式,不同的通讯模式之下对应用程序的考虑将会有所不同,使用的MQAPI的参数和选项也将不同。为了使你的MQ应用能够更加健壮,并且具有更强的可维护性,我们要学会灵活高效地使用MQ的一些特性以及相关的API选项,从而提到应用程序的质量、灵活性、可靠性和性能。这里,我们将给出一些较典型的建议。1.在每一个MQAPI调用之后,必须检查完成码(completioncode)和原因码(reasoncode),对于非零的返回码,必须进行相应的处理,必要时,最好将返回码记录错误日志,从而在应用程序出现运行故障时便于检查和

8、处理。在MQ中,所有的API调用都会得到其完成码和原因码,完成码有MQCC_OK、MQCC_WARNING、MQCC_FAILED等,MQCC_OK表

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。