分布式缓存在教育项目中的应用案例

2020-03-26 17:24:11 浏览数 (1)

公有云业务发展非常快,根据细分场景不同的客户需求,延伸出种类繁多的产品。在某教育云项目中,应用了redis分布式缓存产品,在近期的远程教育中发挥了巨大的作用。

一、远程教育遇到了技术问题

近期学校集中通过pc、iptv等方式进行远程教育,对于后台的能力,普遍采用云计算架构。远程教育的特征主要有以下几点:

1、在上午、下午上课时间存在高峰效应。如果是全省集中平台,将存在上百万的同时并发。

2、业务流量带宽大。一般以视频为主要教学方式。

3、业务体验要求质量高。直播、互动业务对业务顺畅的体验要求非常高。

如果远程教育采用私有云的方式难以满足业务体验需求,主要表现为带宽不足、业务并发量不足。

二、采用公有云解决问题

1、针对高峰效应、带宽大、直播的需求,可以采用CDN进行流量分发,解决视频、静态网页的并发问题。这类解决方案介绍较多,不再详述。

2、针对动态网页的互动类业务(例如,互动问答),无法采用CDN加速分流,建议采用弹性伸缩 云主机 分布式缓存的解决方案进行解决。

三、为什么必须采用分布式缓存

弹性伸缩将造成随时上线、上线云主机,将会中断教育业务。传统的应用服务器,如tomcat、apache等,客户的登录状态信息session默认是放到云主机的单机中。使用弹性伸缩后,将根据cpu、带宽、内存等利用率随时增加、减少服务器,以应对业务分时段的波动。如果此时被减少的服务器上有客户正在使用,将造成session文件的丢失,此时,远程教育系统将要求学生再次登录系统,影响教学顺畅的体验。

如果我们采用了分布式缓存产品,将session文件放到统一集中的服务器中,将不会出现此类问题。

四、分布式缓存如何解决问题

分布式缓存产品采用内存存储,极大提高了效率。如果采用传统的Mysql等数据库进行集中的存储,速度相比redis、memcache等基于内存的数据库产品,更慢。

如下图,将session数据文件统一放到分布式缓存产品后,前端的web Server成为了无状态化,可以任意增加、减少前端的Web、应用服务器,而不会对客户的业务体验造成影响。

大型网站系统的分布式计算,是一个非常庞大的知识集合,今天我们讲解的仅仅是session数据的横向扩展。

如果您觉得好,希望长期关注本公众号的专业、风趣、实时的信息,请在以下二维码长按,以关注。

0 人点赞