APP下载

利用分布式缓存提升CRM系统登录效率

2016-02-07欧志芳

网络安全技术与应用 2016年12期
关键词:实例内存分布式

◆欧志芳

(福富软件 福建 350001)

利用分布式缓存提升CRM系统登录效率

◆欧志芳

(福富软件 福建 350001)

应用系统支撑总绕不开性能的问题,有时通过业务清理来降低压力,有时通过代码优化来提高处理速度,更有时候通过主动的架构优化,引入新技术来系统性地提升性能。本文通过对项目的回顾,分享利用分布式缓存来实现提升系统登陆效率的方案,总结分布式缓存应用的原则和约束,指导应用如何更好地设计来满足性能的要求。

CRM;分布式缓存;Redis

0 引言

以一个面向信息管理并以客户服务为核心的电信系统为例,每天来自营业厅、代理商、客服等渠道人员都需要登录到CRM系统进行客户认证、业务办理、资料查询等,而且大部分都是在登录之后无限期地使用会话,这就使得每天首次登录系统的速度很关键。首次登录的数据需要加载员工信息、权限信息等,加载的信息量大,最大可达10W记录。老系统采用直接访问数据库,由于磁盘I/O数据存在瓶颈,每秒数据处理能力无法满足性能要求,造成首次登录较慢,影响到客户感知。本文主要说明如何通过分布式缓存来提升首次系统登录效率的实现方案。

1 分布式缓存选型分析

由于缓存通过高效内存作为存储介质,极大提升数据存取能力,可以有效解决大量并发的数据库性能瓶颈,减轻数据库的负载压力,提升系统稳定性;通过分布式数据缓存应用不仅可以降低系统交互环节与时间、提高事务吞吐率、有效降低系统的延时,还可以对服务资源实时扩容缩容调整,过程对应用整体无感知,保障业务连续性。

目前流行的分布式缓存有两种,它们的优缺点如下:

分类 方案 MemCache Redis业务保障 扩容方式 停机扩容 在线扩容单点故障 主备+手工切换(应用重连)主备+自动切换(应用重连)可扩展性 客户端API扩展;多并发横向扩展受限;通过redis横向扩容存储;通过接入机横向扩展并发数;运维保障运维自动化 手工编译、安装、部署;节点管理需重新开发手工编译、安装、部署;节点管理需重新开发运维监控 无提供分钟级监控数据接口;可快速与业务监控系统对接;数据恢复 无 快照+流水+手工恢复

通过比对,基于Redis具备更好的业务和运维保障能力,选择Redis作为系统改造的分布式缓存组件。分布式缓存Redis主要包含如下特性:

(1)功能特性

①具备NoSQL数据库功能,且支持list、map集合对象。

②具备故障自动切换功能,在主库发生故障时及时切换到备库。

③具备数据备份、运维监控管理等配套管理功能。

(2)关键性能指标(4路8核,512GB内存,千兆网卡)

①单机性能:单实例 TPS ~ 7w/s;单机 6-10个实例 TPS ~30W/s;并发数:最大10000并发数;30-60并发下性能最优。

②集群性能:单一数据租户线性扩展最大支持 1000个redis进程;每个进程最佳数据大小为20G。

2 分布式缓存的解决思路

(1)改造前

应用首次访问,通过数据库查询,并把数据库返回的数据存储到本地缓存,本地缓存之后,后续该数据的读操作直接获取本地缓存;第一次读取的数据都是通过数据库查询返回,查询量大,耗时长。

(2)改造后

提前把热点数据上载到分布式缓存;应用首次访问,通过分布式缓存访问,并把返回的数据存储到本地缓存,本地缓存之后,后续该数据的读取操作直接获取本地缓存;经过压测,分布式缓存平均命中率 99.36%,单次命中的分布式缓存访问比数据库访问平均耗时减少81%,大大减少数据库的查询压力,提升权限登录感知,特别是首次登录。

(3)风险规避工具

①统一开关:调用分布式缓存设置开关,设置超时控制,出现问题情况时,能在线、快速切换回原有模式。

②上载工具:提供全量、增(批)量数据上载,可自动定时上载也可手工上载。

③定时比对:按照设定的时间全量比对分布式缓存数据与数据库数据,并记录不一致的数据。

④自动不一致数据补偿:自动补偿定时比对不一致的数据,并能自动进行补偿。

⑤监控告警:监控阀值出现异常时,实时短信告警。

3 应用设计原则与约束

(1)分布式缓存的应用场景选择,主要从以下三方面考虑:

方向说明 典型场景热度为支持高并发事务的请求处理,对于访问量大于更新量,访问热度特别高的场景,采用分布式缓存实现,提高应用吞吐率,降低延时。员工等配置数据的缓存。共享为了降低数据库的负载压力,加速应用访问,对于数据在服务器间共享的场景,采用分布式缓存实现,最大限度地提高资源利用率。会话状态缓存等需要共享的缓存计算涉及大量中间计算内容,需要在线实时使用的场景,先采用离线并行处理,再加载到分布式缓存,提供应用实时使用。员工权限等处理过程数据的缓存。

(2)分布式缓存的应用时需要关注事项

①关注命中率

命中率是分布式缓存应用核心,决定应用效果;具备缓存范围配置,通过不断增加规则直至缓存数据覆盖所有场景。

②保障一致率

数据变更实时更新分布式缓存;定期数据比对,当分布式缓存数据不一致时,具备自动化的数据修复。

③故障可转移

分布式缓存留有故障转移口,当分布式缓存故障时,自动切换回保障渠道,实现不受影响业务受理;缓存调用设置超时,超过阀值的走保障渠道访问。

④工具齐配套

全量工具,在线的实时数据上载;增量工具,异常的数据快速修复;比对工具,定期的数据比对,自动化的数据修复。

(3)使用建议

数据大小:单条记录(key+value)建议大小不超过32K;

容量大小:为保证能够数据快速的备份、迁移及恢复,redis单实例内存大小建议设置不超过20G;

主从配置:高可用应用场景缓存建议配置1主2从,1个本地机房不同主机从节点,用于快速的故障切换,1个异地机房的从节点;

数据持久化策略:建议设置Redis增量日志备份(AOF),每天业务低谷快照备份(RDB);

数据更新:热点数据建议通过LRU数据缓存数据淘汰方式更新。即如发现缓存无数据则通过数据库获取最新数据;

单机多实例:为最大化利用资源,建议每台主机上可部署多个Redis实例,最大实例数>=CPU核数的一半;

数据分片:单租户redis数据分片最多1000个;

内存使用:主机内存使用率最大90%;redis实例内存使用率最大90%,建议为60-70%;预留20%应对突发流量。

4 结束语

分布式缓存虽然已经在IT系统的方方面面广泛应用着,但是对应用的场景、使用的原则与约束等说法不一。本文通过对分布式缓存在CRM系统的落地过程进行回顾,给出了分布式缓存Redis的落地参考方案。

猜你喜欢

实例内存分布式
笔记本内存已经在涨价了,但幅度不大,升级扩容无须等待
“春夏秋冬”的内存
分布式光伏热钱汹涌
分布式光伏:爆发还是徘徊
基于DDS的分布式三维协同仿真研究
内存搭配DDR4、DDR3L还是DDR3?
完形填空Ⅱ
完形填空Ⅰ
西门子 分布式I/O Simatic ET 200AL
上网本为什么只有1GB?