欢迎来到天天文库
浏览记录
ID:14852369
大小:1.40 MB
页数:17页
时间:2018-07-30
《基于activemq的消息中间件架构设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、基于ActiveMQ的消息中间件架构设计171.基本介绍与组件架构图维基百科对消息中间件的定义是“Message-orientedMiddlewareissoftwareinfrastructurefocusedonsendingandreceivingmessagesbetweendistributedsystem。”分布式系统中实现消息发送和接受的基础设施。随着企业信息化建设的不断深入。多种业务应用相互关联,easy造成底层数据分散,应用系统间的耦合度高。针对该问题应从总体上调整眼下系统架构。面向不同业务应用提供统一的数据訪问服
2、务,使用消息中间件对不同系统间的交互进行解耦,消息中间件技术有两个核心功能:异步和解耦。这两个核心功能总体上提高了应用系统的工作效率,增强了系统的可用性、稳定性和可扩展性。提升了用户体验。使用OneMM消息中间件系统能够实现应用系统各模块间或应用系统与其它系统(如ERP系统、支付系统)之间的解耦与异步消息传输。改变直接通过数据库共享方式交换数据,造成系统之间底层数据耦合度过高问题以及远程跨地域应用系统的数据交换问题。OneMM系统组件逻辑架构图例如以下: 17消息中间件架构主要组件说明:(1)消息发送组件:接收应用server发起的
3、外系统调用请求。并将请求消息发送到本地消息队列或跨中心消息队列;(2)消息接收组件:接收本地消息队列或跨中心消息队列中的请求消息,并调用外系统提供的业务接口;(3)消息转发组件:消息转发器帮助跨中心应用进行消息转发,如图中的中心1和中心2之间。应用能够通过消息转发器进行消息互发。(4)消息代理组件:消息代理组件主要负责接收跨中心消息,并将跨中心消息依据相关參数发送到下图中心1的“请求处理结果Topic订阅消息队列“或分发到中心2的相关详细业务队列;(5)队列管理组件:配置管理不同中心下的所有消息队列。及相关调用接口。(6)消息队列组
4、件:提供消息队列创建、销毁等队列操作及管理功能。架构使用ActiveMQ开源消息队列工具。(7)消息缓存组件:本地或跨中心异步消息通过Redis缓存组件获得返回结果消 172.消息流转架构图2.1同步消息流转架构:消息发送组件创建会话发出异步消息后,同步流程会话循环接收Topic消息回复订阅队列的广播消息,通过会话唯一标识推断是否为该会话的结果消息。是的话返回给应用,否则忽略该消息,超时后直接返回超时。同步消息流转架构图例如以下:2.2异步消息流转架构:本地或跨中心异步消息通过Redis缓存组件获得返回结果消息。异步消息结果,通过新
5、建会话返回。生产者发送消息后关闭会话,无需等待。全然的异步流程无需返回结果消息。用户通过发起查询请求通过缓存或本地系统数据库获得结果。可是在某些项目实际使用中,异步会话不会马上关闭而是等待结果。被调用者运行请求后将结果依照异步消息发送流程主动发送回去。会话通过轮询Redis结果缓存,依据Session唯一标识符推断是否存在该会话的返回结果,获得结果后将结果返回给请求发起者。17异步的特点是被调用者主动获取消息。并主动通过其它队列发送结果消息。这时被调用者能够依据自己的状态和处理情况推断是否(及怎样)获取消息。是否(及怎样)运行操作并
6、返回结果。被调用者能够自行决定该怎样操作,比方能够批处理。因此对于并发处理能力较弱的应用(被调用者)应採用异步方式主动接收消息。并主动创建会话返回处理结果消息,并依据实际情况决定怎样处理及返回结果(比方可採用批处理及返回的方式),之后请求发起者通过新建会话在本地缓存或本地数据库中获取返回结果,真正实现应用间的解耦。异步消息流转架构图例如以下: 3.跨中心消息时序图3.1跨中心异步消息处理时序图一17异步消息结果,通过新建会话返回。生产者发送消息后关闭会话,无需等待。全然的异步流程无需返回结果消息。用户通过发起新的查询请求。通过本地缓
7、存或本地数据库获得结果。 3.2跨中心异步消息处理时序图二在某些项目实际使用中,异步会话不会马上关闭而是等待结果,被调用者运行请求后将结果依照异步消息发送流程主动发送回去。会话通过轮询Redis结果缓存。依据Session唯一标识符推断是否存在该会话的返回结果,获得结果后将结果返回给请求发起者。异步的特点是被调用者主动获取消息。并主动通过其它队列发送结果消息。这时被调用者能够依据自己的状态和处理情况推断是否(及怎样)获取消息。是否(及怎样)运行操作并返回结果,被调17用者能够自行决定该怎样操作。比方能够批处理。因此并发处理能力较弱的
8、应用应採用该异步方式主动处理消息。而且请求发起者通过新建会话在本地缓存或本地数据库中获取结果,真正实现应用间的解耦。 3.3跨中心同步消息处理时序图一会话发出异步消息后,会话堵塞,循环接收TopicResponse队列的广播消息。通过
此文档下载收益归作者所有