论文部分内容阅读
【摘要】 本文阐述了业务发展带来的业务支撑系统的瓶颈,分析了缓存平台技术,从而提出缓存平台技术在业务支撑系统的应用。
【关键词】 缓存平台 业务支撑系统 API 应用程序接口(Application Program Interface) 全表加载 懒加载
一、 引言
随着业务的快速发展,线上线下多受理渠道的增加,以及CRM侧超级限制、积分、代理商资金归集、腾讯视频等一些特色项目及各种外围接口的实施,导致订单及查询服务效率的下降。究其根本,瓶颈还是在业务数据库的处理性能上。
省分业务数据库部署在AIX小型机上,硬件投入成本非常高。数据库主机CPU使用率又逐渐增高,业务高峰期甚至高达95%多,对前台业务受理的效率影响显著,特别是对用户新装、缴费、停开机、产品变更等重要业务冲击很大,既直接导致了用户受理体验的下降,也增加了业务系统的内在隐患。
因此,迫切需要找到一种切实可行的优化方式,以大幅提高整体系统的处理性能。
二、缓存平台技术
2.1 统一存储代替分散存储
定制数据存储的格式与规则。将主机上运行的各个进程私有内存中的数据统一存储在缓存平台中。平台对外提供统一的访问API。一方面,确保了数据的唯一性和一致性;另一方面,也降低了主机内存的损耗。
2.2 懒加载代替全表加载
定制数据存储的流程。将系统运行中全表加载数据的机制改为按需懒加载机制。懒加载可以提升系统运行效率,同时也能增强客户体验。
2.3 数据生命周期管理
平台存储了各种各样的数据,不同的数据可以定制各自的生命周期。数据的生命周期内,业务系统从缓存平台读取数据;数据生命周期结束后,平台存储的数据立刻失效,然后平台继续按需懒加载数据。
2.4 高效的数据查找算法
缓存平台多处采用一些著名的算法,比如:hash算法、skip list算法、sha1算法等等。通过这些算法,一方面提高了程序运行效率,另一方面提高了程序的可靠性。
2.5 多机容灾机制
缓存平台提供应用调用的API,内置容错机制,智能检测缓存平台状态。当发现平台不可用时,可以智能跳转至备用平台。网络内可以部署多个平台,互为主备。一台主机可以同时支持多台备机。
正常情况下,中间件A连接缓存平台A,当缓存平台A不可用用时,自动连接缓存平台B…
正常情况下,中间件B连接缓存平台B,当缓存平台B不可用用时,自动连接缓存平台A…
缓存平台切换为平滑切换,对应用透明。不影响业务受理。
2.6 总述
缓存平台能够实现优化现有系统架构,降低数据库压力,提升查询速度。在原有网络中添加缓存平台,数据的流向由旧架构中每次都从数据库进行查询,修改为新架中每次都从缓存平台进行查询,平台中的数据采用懒加载策略,需要时才从数据库获取,并且在数据的生命周期内,仅从数据库获取一次数据。
三、业务支撑系统架构存在的问题
当前的IT业务支撑系统自2009年实施上线,一直运行至今。系统架构采用传统的四层架构:展示层、接入层、业务逻辑层、数据层。传统的技术架构,随着用户数增长,业务发展,其对后端数据库的压力也逐渐增大。数据库性能瓶颈日益明显。
前端,业务系统受理效率下降,影响客户体验;在业务高峰期数据库CPU使用率又上升到90%。数据库硬件扩容难度大,存在天花板。
四、缓存平台技术在业务支撐系统的应用
现有业务支撑系统的技术架构是四层:展示层、接入层、业务逻辑层、数据层,缓存平台技术是在业务逻辑层与数据层之间,部署缓存平台及基于平台研发的通用数据管理产品。
4.1缓存平台的功能架构
整个系统架构分为三个部分:平台核心层。在这里规范业务数据的标准存取操作流程、数据的生命周期管理,以及操作流程中的策略管理与配置管理等等。平台接口层。在这里与现有的BOSS侧业务层对接,提供相关的操作接口。BOSS业务层。在这里对现有的BOSS侧业务层逻辑进行代码改造,以便对接缓存平台。
1、平台核心层。主要包含12个功能模块,内容概述如下:
1)内存数据库适配器:内存数据库适配器包含两个功能。对主流内存数据库(altibase/redis/memcached/…)进行调用接口适配;对不同厂商的小机环境进行适配,目前支持AIX/ hp-ux等。
2)数据生命周期管理:对内存数据库中的数据进行生命周期管理,支持通过配置来定义不同类型的数据的不同的生命周期。相同数据在生效期内,不再重复从数据源加载,数据失效后,采用懒加载策略从数据源重新加载数据。
3)关系型数据库数据操作对象。采用oci接口封装对关系型数据库的操作对象。包括关系型数据库中数据的增删改查等等。
4)内存型数据库数据操作对象。封装对内存数据库的操作对象。包括内存数据库中数据的增删改查等等。
5)存储驱动器。根据配置来自动加载不同的存储实例,获取存储管理器,交给应用做后续的内存操作。
6)存储管理器。定义了对存储的各种操作接口及标准的操作流程。
7)元数据查询。定义了标准的查询流程并提供相关的API。
8)元数据存储。定义了标准的存储流程并提供相关的API。
9)元数据删除。定义了标准的删除流程并提供相关的API。 10)懒加载策略管理。实现对数据的懒加载策略,当需要时才加载相关增量数据,而非一次性全量加载。
11)容灾策略管理。提供应用调用的API,内置容错机制,智能检测缓存平台状态。当发现平台不可用时,可以智能跳转至备用平台。网络内可以部署多个平台,互为主备。一台主机可以同时支持多台备机。
12)通用配置管理。实现对配置的读取与使用。
2、 平台接口层。主要包含4个功能模块,内容概述如下:
1)CParam查询接口。对系统中上百个KV类型数据进行封装,定义统一的查询接口。实现对这些数据的加载、查询与存储等操作。
2)通用查询接口。对所有基于对数據库的查询操作进行封装,使用标准的数据查询流程,内置关系型数据库的查询、内存数据库的查询、存储等操作。
3)Buffer转换。对Tuxedo的CFml32格式的数据进行封装,可以快速地对其中KV数据进行编码名称转换。
4)Conv类转换。Conv类是封装了一系列c++类,使用这个系列类可以对一些常见的数据进行查询转换。
3、BOSS业务改造内容
BOSS业务侧所有按传统方式对关系型数据Oracle进行数据操作的代码,都采用缓存平台提供的API进行调用改造。BOSS业务侧需改造的大小模块将近30个,包括但不局限于以下内容:订单模块、费用模块、客户模块、用户模块、账户模块、资源模块、帐管模块、产品模块、参数模块、联指模块等。
4.2缓存平台实施后的优化效果
系统运行稳定,效果显著,有效降低了业务程序对数据库的访问。出账期间,缓存平台每天缓存命中次数最高可达2亿6千多万次,crm数据库活动会话数降低近一半,中间件主机内存较实施前降低明显,12台业务主机共降低内存达50.2G。
五、结束语
缓存技术很大程度上解决了BOSS系统的瓶颈问题,提高了整体系统的处理性能。实施后BOSS系统有以下四个方面的明显优化:提升数据库性能,降低数据库主机CPU使用率; 降低中间件主机内存损耗;降低中间件主机CPU使用率,提高流程处理性能;降低WEB应用服务器的瞬间CPU性能高峰。
缓存平台的应用提高了业务受理效率,提升了客户体验,降低业务数据CPU使用率,降低主机内存损耗,节省了硬件成本。
【关键词】 缓存平台 业务支撑系统 API 应用程序接口(Application Program Interface) 全表加载 懒加载
一、 引言
随着业务的快速发展,线上线下多受理渠道的增加,以及CRM侧超级限制、积分、代理商资金归集、腾讯视频等一些特色项目及各种外围接口的实施,导致订单及查询服务效率的下降。究其根本,瓶颈还是在业务数据库的处理性能上。
省分业务数据库部署在AIX小型机上,硬件投入成本非常高。数据库主机CPU使用率又逐渐增高,业务高峰期甚至高达95%多,对前台业务受理的效率影响显著,特别是对用户新装、缴费、停开机、产品变更等重要业务冲击很大,既直接导致了用户受理体验的下降,也增加了业务系统的内在隐患。
因此,迫切需要找到一种切实可行的优化方式,以大幅提高整体系统的处理性能。
二、缓存平台技术
2.1 统一存储代替分散存储
定制数据存储的格式与规则。将主机上运行的各个进程私有内存中的数据统一存储在缓存平台中。平台对外提供统一的访问API。一方面,确保了数据的唯一性和一致性;另一方面,也降低了主机内存的损耗。
2.2 懒加载代替全表加载
定制数据存储的流程。将系统运行中全表加载数据的机制改为按需懒加载机制。懒加载可以提升系统运行效率,同时也能增强客户体验。
2.3 数据生命周期管理
平台存储了各种各样的数据,不同的数据可以定制各自的生命周期。数据的生命周期内,业务系统从缓存平台读取数据;数据生命周期结束后,平台存储的数据立刻失效,然后平台继续按需懒加载数据。
2.4 高效的数据查找算法
缓存平台多处采用一些著名的算法,比如:hash算法、skip list算法、sha1算法等等。通过这些算法,一方面提高了程序运行效率,另一方面提高了程序的可靠性。
2.5 多机容灾机制
缓存平台提供应用调用的API,内置容错机制,智能检测缓存平台状态。当发现平台不可用时,可以智能跳转至备用平台。网络内可以部署多个平台,互为主备。一台主机可以同时支持多台备机。
正常情况下,中间件A连接缓存平台A,当缓存平台A不可用用时,自动连接缓存平台B…
正常情况下,中间件B连接缓存平台B,当缓存平台B不可用用时,自动连接缓存平台A…
缓存平台切换为平滑切换,对应用透明。不影响业务受理。
2.6 总述
缓存平台能够实现优化现有系统架构,降低数据库压力,提升查询速度。在原有网络中添加缓存平台,数据的流向由旧架构中每次都从数据库进行查询,修改为新架中每次都从缓存平台进行查询,平台中的数据采用懒加载策略,需要时才从数据库获取,并且在数据的生命周期内,仅从数据库获取一次数据。
三、业务支撑系统架构存在的问题
当前的IT业务支撑系统自2009年实施上线,一直运行至今。系统架构采用传统的四层架构:展示层、接入层、业务逻辑层、数据层。传统的技术架构,随着用户数增长,业务发展,其对后端数据库的压力也逐渐增大。数据库性能瓶颈日益明显。
前端,业务系统受理效率下降,影响客户体验;在业务高峰期数据库CPU使用率又上升到90%。数据库硬件扩容难度大,存在天花板。
四、缓存平台技术在业务支撐系统的应用
现有业务支撑系统的技术架构是四层:展示层、接入层、业务逻辑层、数据层,缓存平台技术是在业务逻辑层与数据层之间,部署缓存平台及基于平台研发的通用数据管理产品。
4.1缓存平台的功能架构
整个系统架构分为三个部分:平台核心层。在这里规范业务数据的标准存取操作流程、数据的生命周期管理,以及操作流程中的策略管理与配置管理等等。平台接口层。在这里与现有的BOSS侧业务层对接,提供相关的操作接口。BOSS业务层。在这里对现有的BOSS侧业务层逻辑进行代码改造,以便对接缓存平台。
1、平台核心层。主要包含12个功能模块,内容概述如下:
1)内存数据库适配器:内存数据库适配器包含两个功能。对主流内存数据库(altibase/redis/memcached/…)进行调用接口适配;对不同厂商的小机环境进行适配,目前支持AIX/ hp-ux等。
2)数据生命周期管理:对内存数据库中的数据进行生命周期管理,支持通过配置来定义不同类型的数据的不同的生命周期。相同数据在生效期内,不再重复从数据源加载,数据失效后,采用懒加载策略从数据源重新加载数据。
3)关系型数据库数据操作对象。采用oci接口封装对关系型数据库的操作对象。包括关系型数据库中数据的增删改查等等。
4)内存型数据库数据操作对象。封装对内存数据库的操作对象。包括内存数据库中数据的增删改查等等。
5)存储驱动器。根据配置来自动加载不同的存储实例,获取存储管理器,交给应用做后续的内存操作。
6)存储管理器。定义了对存储的各种操作接口及标准的操作流程。
7)元数据查询。定义了标准的查询流程并提供相关的API。
8)元数据存储。定义了标准的存储流程并提供相关的API。
9)元数据删除。定义了标准的删除流程并提供相关的API。 10)懒加载策略管理。实现对数据的懒加载策略,当需要时才加载相关增量数据,而非一次性全量加载。
11)容灾策略管理。提供应用调用的API,内置容错机制,智能检测缓存平台状态。当发现平台不可用时,可以智能跳转至备用平台。网络内可以部署多个平台,互为主备。一台主机可以同时支持多台备机。
12)通用配置管理。实现对配置的读取与使用。
2、 平台接口层。主要包含4个功能模块,内容概述如下:
1)CParam查询接口。对系统中上百个KV类型数据进行封装,定义统一的查询接口。实现对这些数据的加载、查询与存储等操作。
2)通用查询接口。对所有基于对数據库的查询操作进行封装,使用标准的数据查询流程,内置关系型数据库的查询、内存数据库的查询、存储等操作。
3)Buffer转换。对Tuxedo的CFml32格式的数据进行封装,可以快速地对其中KV数据进行编码名称转换。
4)Conv类转换。Conv类是封装了一系列c++类,使用这个系列类可以对一些常见的数据进行查询转换。
3、BOSS业务改造内容
BOSS业务侧所有按传统方式对关系型数据Oracle进行数据操作的代码,都采用缓存平台提供的API进行调用改造。BOSS业务侧需改造的大小模块将近30个,包括但不局限于以下内容:订单模块、费用模块、客户模块、用户模块、账户模块、资源模块、帐管模块、产品模块、参数模块、联指模块等。
4.2缓存平台实施后的优化效果
系统运行稳定,效果显著,有效降低了业务程序对数据库的访问。出账期间,缓存平台每天缓存命中次数最高可达2亿6千多万次,crm数据库活动会话数降低近一半,中间件主机内存较实施前降低明显,12台业务主机共降低内存达50.2G。
五、结束语
缓存技术很大程度上解决了BOSS系统的瓶颈问题,提高了整体系统的处理性能。实施后BOSS系统有以下四个方面的明显优化:提升数据库性能,降低数据库主机CPU使用率; 降低中间件主机内存损耗;降低中间件主机CPU使用率,提高流程处理性能;降低WEB应用服务器的瞬间CPU性能高峰。
缓存平台的应用提高了业务受理效率,提升了客户体验,降低业务数据CPU使用率,降低主机内存损耗,节省了硬件成本。