版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、消息中间件在邮政电子商务平台的应用 摘要:通过对邮政电子商务平台系统架构及RocketMQ消息中间件技术的分析,提出对平台架构进行优化设计,利用消息中间件实现系统模块之间的解耦合,减少相互依赖的建议。 关键词:RocketMQ;消息中间件;电子商务平台;集群邮政 电子商务平台业务受理的一个重要特征是全天营业,实时交易占比高,接入渠道丰富,对接第三方系统繁多。电子商务的业务特点决定了系统在响应时间上必须满足要求,以达到更好的客户体验,确保交易完整性。对于平台自有系统,可以通过逻辑优化,尽可能避免延时,但是第三方系统的延时则不可控,通常无法干预其系统优化。本文描述了消息中间件技术在省邮政电子商务平
2、台上的应用,实现平台交易模块的解耦合,减少模块处理延时的叠加效应,提高平台的响应速度,提升客户体验。 1消息中间件的选型分析 随着企业信息化建设的不断深入,多种业务应用相互关联,容易造成底层数据分散,应用系统间的耦合度高。消息中间件技术有两个核心功能:异步和解耦。这两个核心功能可对不同系统间的交互进行解耦,总体上提高应用系统的工作效率,增强系统的可用性、稳定性和可扩展性。消息队列已经逐渐成为企业IT系统内部通信的核心手段,可以在分布式环境下提供应用解耦、弹性伸缩、冗余存储、流量削峰、异步通信、数据同步等功能。常用消息中间件相关特点及对比如表1所示。系统在技术选型上包含以下几方面考量:一是系统要
3、保证数据的完整性,因此选用的中间件应该支持事务处理,并保证交易数据不会丢失;二是某些业务场景会引起高并发交易,因此中间件应具备应对突发业务高峰的处理能力;三是省平台选型应与集团平台所用技术保持一致;四是优先选择支持云部署的产品。综上分析,对比常用中间件的技术特点,最终选择RocketMQ作为本次应用的消息中间件。 2RocketMQ技术简介 RocketMQ是阿里开源的消息中间件,目前归属于Apache顶级项目,它是纯Java开发,具有高吞吐量、高可用性、适合大规模分布式系统应用的特点。RocketMQ集群包含4个模块:Namesrv、Broker、Producer、Consumer。Name
4、srv存储当前集群所有Brokers信息、Topic与Broker的对应关系,功能简单,稳定性高。多个Namesrv之间相互没有通信,单台Namesrv宕机不影响其他Namesrv与集群。Broker是集群最核心的模块,主要负责Topic消息存储、消费者的消费位点管理(消费进度),可理解为RocketMQ服务的注册中心。Producer是消息生产者,每个生产者都有一个ID(编号),多个生产者实例可以共用一个ID,同一个ID下所有实例组成一个生产者集群。生产者通过Namesrv获取Topic与Broker的映射关系,更新到本地内存中,再和Topic涉及的所有Broker建立长连接。Consume
5、r是消息消费者,每个订阅者也有一个ID,多个消费者实例可以共用一个ID,同一个ID下所有实例组成一个消费者集群。消费者通过Namesrv获取当前消费Topic所涉及的Broker,直连Broker。 3邮政电子商务平台架构分析及优化 3.1平台架构分析。邮政电子商务平台架构如图1所示,业务受理交易通过各渠道系统的渠道前置子系统接入核心应用子系统,核心应用分配一个服务进程处理,再调用外联前置,将交易请求转发至第三方。整个交易过程串行,每个子系统的处理时间叠加则为整个交易的处理时间,任意环节出现延时,都会在整个交易的处理时间上产生叠加效应。对于本地系统,可以通过对各子系统的优化处理,减少延时,但对
6、于第三方系统邮政无法干预其优化过程,因此第三方系统延时产生的影响更大。3.2RocketMQ消息中间件在平台的应用。为了解决交易延时,在核心应用子系统与外联前置之间部署一套RocketMQ消息中间件子系统,同时在核心应用和外联前置增加一对消息生产者与消费者模块,用于生产及消费消息。系统模块设计时,选择在订单生成与订单支付之间进行解耦合,订单生成后,会调用消息生产者模块主动向消息中间件登记一条消息,标志订单生成成功;后续消息消费者(位于外联前置)取走消息,并根据消息类型进行个性化处理,这里主要是进行第三方保险公司投保操作,以此实现订单生成与支付投保异步处理。优化后的电子商务平台架构如图2所示。首
7、先,平台交易到达核心应用后,通过生产者模块向RocketMQ消息中间件推送一条消息。然后,核心应用返回前端交易已提交成功,前端交易完成,后续进行交易状态查询。最后,外联前置通过消费者模块取出消息,根据消息内容获取订单信息组装报文发送至第三方,获取第三方返回后将结果更新到订单信息中。交易流程优化后,前端的订单支付交易无需等待第三方结果,很快提示交易提交成功,通过订单状态查询功能即可获取订单状态;外联前置在第三方调用时,可以对失败的消息进行多次调用,直至达到阈值或调用成功为止。3.3RocketMQ集群部署。RocketMQ部署比较灵活,提供多种集群部署方式,通过配置可以快速形成集群部署,部署方式
8、为异步多Master多Slave模式,每个Master配置一个Slave,部署两组Master-Slave,HA采用异步复制方式,主备消息延迟短,仅为毫秒级。这种模式的优点是,即使磁盘损坏,消息丢失也较少,且消息实时性不受影响,因为Master宕机后,消费者仍然可以从Slave消费,此过程对应用透明,不需要人工进行干预。RocketMQ在系统应用时,需要进行相关的约束设计。3.3.1增加消息去重策略。在某些情况下,应用消费了消息,但没有反馈给RocketMQ,该消息将会再次被消费,因此需要增加消息去重策略,可通过对应的状态位决定是否需要再次处理消息。3.3.2限制消息报文大小。生产消息时需控制
9、消息报文的大小,某些应用场景不需要将所有信息都封装到消息体中,仅记录关键信息即可。3.3.3合理规划消息分组。根据RocketMQ提供的消息特性,结合业务特点,使用分组-Topic-Tag三级结构,按平台-业务-模式将消息分类。 4应用效果 RocketMQ消息中间件的应用,使交易的本地处理与第三方调用解耦合,交易各项指标都有所提升。系统优化改造后,使用LoadRunner等测试工具对邮政各业务场景进行了性能压力测试,结果显示,事务平均通过率达98%以上,事务平均响应时间为1.305s,90%的事务响应时间在2s内。前端最直接的体验是交易耗时短,系统监控发现,第三方处理超时对前端请求影响较小。 参考文献 1欧志芳基于RocketMQ实现异构数据库同步网络安全技术与应用,2016,12 2赵伟
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高新科技产品开发诚信承诺书(7篇)
- 蛋糕屋糖果测试题及答案
- 线路分包合同模板范本(3篇)
- 产品质量控制检查表全面风险预防
- 福州低压电工考试题库及答案
- 产品研发流程标准化模板从构思到上市的指导
- 供应链管理与采购流程指南
- 员工培训计划制定与执行效果跟进模板
- 2025年人力资源行业数字化招聘平台与候选人匹配算法研究报告及未来发展趋势预测
- 互联网通信服务质量持续保证函7篇范文
- 国家职业技术技能标准 4-10-03-01 美容师 人社厅发2018145号
- 南京市2024-2025学年高二上学期期中学情调研测试语文试卷及答案
- LY/T 1936-2011油茶采穗圃营建技术
- 自然资源全民科学素质总结汇报
- 公共基础知识复习资料
- 防范化解露天矿山安全生产风险
- 完整版隧道项目消防工程施工组织设计方案
- 内科学胃癌(2学时)
- 境内货源地代码查询
- 宏观经济学1卷
- PV-1200-(中文版)气候交变稳定性试验
评论
0/150
提交评论