集中式应用系统分布式改造方案研究

2019-08-09 08:23:26
[ BPO网导读 ] 经实际测试,本改造方案基本满足集中式系统分布式改造的一般性要求,但在配套的自动化部署方面并未进行更加深入的研究。要充分发挥分布式系统的特点,基础设施建设至关重要。

  分布式改造过程中通常还涉及数据库拆分。对笔者所在系统来说,子应用数据库是否独立拆分会影响到一些公共交易的实际路由,而利用配置管理中心则可以实现交易路由的灵活动态调整。

权限管理

  本方案需要进行权限控制的主要有两部分,一是注册节点(例如枚举节点、交易节点等)的访问权限,二是子应用的访问权限。为简化处理,一套系统的所有zk节点的加密授权信息是一致的,不同系统的授权信息不同。应用程序对注册节点的所有操作必须经过鉴权以避免非法访问。

  本系统内部所有应用可以互相访问(如图2所示),同时各个子应用允许所有经过授权的外部系统应用直接访问其指定交易或服务。子应用在进行交易、服务注册时会同步增加相应授权节点及其监听器,然后基于监听器收到的通知信息形成允许访问IP列表。收到请求时子应用会进行IP鉴权,外部IP只有在允许访问列表中才允许访问该子应用。外部系统需要直接访问子应用时需在目标交易、服务的授权节点下注册其应用IP信息。

请求处理流程

  为最小化改动,内部系统交互应尽量以系统现有主要请求方式为准,使用相同网络协议及报文格式。如图3所示,网关收取外部请求时,根据路由参数(例如url名称或其他特定请求参数等)从相应的本地注册信息缓存中获取目标子应用,若存在目标子应用则将请求转发,否则按照常规流程处理请求。

图片6.jpg
图3 请求处理流程

  待分发公共交易等特殊交易由于必须进行报文解析才能拿到相应的路由参数,耗时增加较其他直接转发交易更多。在不破坏原有请求参数结构的前提下,将路由参数添加到无需解析即可获取的地方(如http请求报文头),使网关无需报文解析即可确定转发目标,提高处理效率。

压力测试及分析

  限于篇幅笔者选取若干典型交易进行了压力测试,各个交易代表的典型场景说明如下。

  process1、2、3:网关根据zk配置决定分发策略,本测试中不分发;process41、42、51、52:网关应用解析请求后根据策略类型A进行子应用分发,其中策略值为A1的请求由网关直接处理,策略值为A2分发到子应用SUB1上;process6:网关直接转发至SUB1子应用的普通HTTP请求;process7:网关直接转发至SUB1子应用的文件生成下载请求(该交易并发数受限);process8:网关收到MQ消息后直接转发至SUB2子应用的Webservice请求;process9:网关收到请求后直接转发至SUB2子应用,SUB2子应用收到请求后在正常逻辑处理过程中请求SUB1子应用;process10:网关应用解析公共文件生成请求后根据策略类型B进行子应用分发,本测试中分发至子应用SUB2(该交易并发数受限,与process11组合调用);process11:网关应用解析公共文件下载请求后根据策略类型B进行子应用分发,本测试中分发至子应用SUB2(该交易并发数受限,与process10组合调用)。


BPO网版权及免责声明

1、凡本网注明:“BPO网”或者“原创”的所有作品,版权均属于BPO网所有,其他媒体、网站或个人转载使用时必须注明:“文章来源:BPO网”。违反上述声明者,本网将追究其法律责任。

2、凡本网注明“来源:XXX(非BPO网)”的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其产生的任何结果负责。

BPO公众号 BPO公众号
返回顶部