• 快捷搜索
  • 全站搜索

金融联机交易系统负载均衡解决方法

2014-03-11 15:18:25作者:浦发银行信息科技总部 高莉 俞培莉编辑:金融咨询网
负载均衡提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。金融机构在使用某设备实现负载均衡过程中,有四大问题需要特别考虑。

金融交易平台存在一些请求并发量大的关键联机交易系统,为了保障系统处理的高效性,这些联机交易系统大多是由多台服务器以对称的方式组成一个服务器集合。每台服务器都具有等价的地位,都可以单独对外提供服务,能够为关键的业务程序提供不中断的服务,有助于改善服务器的性能和支持横向扩展,并可以根据网络访问量的增加来相应地增加网络负载均衡服务器的数量。

        金融机构大多选择应用交付网络领域某厂商设备来实现UNIX平台的负载均衡,它提供了一种高速、有效、透明的方法来扩展网络设备和服务器的带宽、增加系统吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性,进而满足大量并发实时联机交易处理的要求。笔者提出了基于该厂商设备实现负载均衡过程中所需要特别考虑的问题及解决方法。

问题一:同一个服务端口开启多个通信方式使用负载匀衡效果不佳

        软件开发部门在设计系统时,为了让服务简单、统一,会将对外服务端口统一为一个端口。这样的方式对于关联系统来说,是非常方便调用的设计。然而当该系统在使用负载均衡时,可能会出现一些缺陷。例如,在某关键生产系统扩容期间,考虑采用该厂商设备实现系统的负载均衡,该系统的架构如图1所示。

金融联机交易系统员负载均衡解决方法图1.jpg

        该系统应用服务器有两台,端口分别是10.112.57.21:8001、10.112.57.22:800l。两台服务器上都实现了两种通信方式HTTP、JMS。这两种通信方式的基本处理流程如图2所示。其中HTTP连接采用短连接方式进行通信,每次请求都会重新建立连接;JMS连接采用长连接进行通信,只建立一次连接。而且对该系统发送请求的客户端是比较固定的,多为部署在分行的前置服务器,每个分行部署l~2台。

金融联机交易系统员负载均衡解决方法图2.jpg

        采用该厂商设备进行负载均衡后,对系统模拟发起压力,监控两台服务器的系统资源,可以发现两台服务器出现明显的负载不均衡,并没有达到预期的负载均衡效果(如图3所示)。

金融联机交易系统员负载均衡解决方法图3.jpg

        产生这个问题的原因是测试中将该厂商设备设置为Standard模式。由于HTTP每次建立连接,该设备都会对HTTP的每次请求进行连接分配,而JMS只建立一次连接,该设备对JMS的请求只进行一次连接分配。由于HTTP和JMS的连接分配次数差异非常大,JMS的连接被分配到一台服务器的概率非常高,而JMS分配好连接后,请求就会自始至终送达到该服务器,这会导致一台服务器压力过大。

        解决方法:此问题的主要原因是同一端口部署了两个服务,分别为HTTP协议和JMS协议,HTTP为短连接方式,JMS为长连接方式。可以采用将长连接通信转换成短连接通信,或者将长连接服务部署到一个新的端口来解决此问题。笔者尝试了将JMS协议调整为HTTP协议以及将JMS协议部署到一个新的端口,发现都能达到负载均衡的效果。最后本方法选用了将协议统一调整为HTTP协议的方式。

问题二:没有进行源地址转换引发的三角路由问题

        在该设备的配置过程中,三角路由是经常会出现的问题之一。当然,合理使用三角路由也可以帮助提升系统的性能表现。下面以一个案例来说明三角路由现象的根本原因及对应用系统的影响。

        如图4所示,该设备的IP地址为10.112.57.23,该设备下游有两台服务器A、B,两台服务器的网关地址设置为该设备的IP,两台服务器都部署了两个服务,分别监听8001、8002端口。当服务器A的8001端口需要调用8002端口服务时,经过该设备进行负载均衡,该设备将服务转到服务器A或B的8002端口,假如转发到了服务器B的8002端口,就有可能触发三角路由的问题。三角路由的通信分成三步。

金融联机交易系统员负载均衡解决方法图4.jpg

        (1)A和该设备进行通信,此时A对该设备发送通信包,包头标示的源地址为A的IP,目标地址为该设备的IP地址。

        (2)该设备与B通信,该设备对B发送通信包,在没有配置源地址转换的情况下,该设备对B发送的包头标示的源地址为A,目标地址为B。

        (3)B接收到该设备的通信后,由于包头源地址为A,而且A和B在同一网段,B会直接将响应的包发送给A,而不是回给该设备。但是由于A没有发送通信包给B,因此A会将B发送过来的包视为错误包,直接拒绝。

        解决方法:三角路由会引发系统的请求得不到正确的处理,在结合该设备配置过程中,给该设备加上源地址转换,就可以规避此问题。该设备配置源地址转换的方式有以下三种。

        (1)转换为出口所属VLAN的IP或者出口所属VLAN的动态IP。

        (2)转换为特定的IP地址或者IP地址池。

        (3)根据特定的源IP或者目标IP转换为相应的IP。

 1 2 下一页 尾页

扫码即可手机
阅读转发此文

本文评论

相关文章