一、远程教育遇到了技术问题
近期学校集中通过pc、iptv等方式进行远程教育,对于后台的能力,普遍采用云计算架构。远程教育的特征主要有以下几点:
1、在上午、下午上课时间存在高峰效应。如果是全省集中平台,将存在上百万的同时并发。
2、业务流量带宽大。一般以视频为主要教学方式。
3、业务体验要求质量高。直播、互动业务对业务顺畅的体验要求非常高。
如果远程教育采用私有云的方式难以满足业务体验需求,主要表现为带宽不足、业务并发量不足。
二、采用公有云解决问题
1、针对高峰效应、带宽大、直播的需求,可以采用CDN进行流量分发,解决视频、静态网页的并发问题。这类解决方案介绍较多,不再详述。
2、针对动态网页的互动类业务(例如,互动问答),无法采用CDN加速分流,建议采用弹性伸缩+云主机+分布式缓存的解决方案进行解决。
三、为什么必须采用分布式缓存
弹性伸缩将造成随时上线、上线云主机,将会中断教育业务。传统的应用服务器,如tomcat、apache等,客户的登录状态信息session默认是放到云主机的单机中。使用弹性伸缩后,将根据cpu、带宽、内存等利用率随时增加、减少服务器,以应对业务分时段的波动。如果此时被减少的服务器上有客户正在使用,将造成session文件的丢失,此时,远程教育系统将要求学生再次登录系统,影响教学顺畅的体验。
如果我们采用了分布式缓存产品,将session文件放到统一集中的服务器中,将不会出现此类问题。
四、分布式缓存如何解决问题
分布式缓存产品采用内存存储,极大提高了效率。如果采用传统的Mysql等数据库进行集中的存储,速度相比redis、memcache等基于内存的数据库产品,更慢。
如下图,将session数据文件统一放到分布式缓存产品后,前端的web Server成为了无状态化,可以任意增加、减少前端的Web、应用服务器,而不会对客户的业务体验造成影响。
大型网站系统的分布式计算,是一个非常庞大的知识集合,今天我们讲解的仅仅是session数据的横向扩展。
如果您觉得好,希望长期关注本公众号的专业、风趣、实时的信息,请在以下二维码长按,以关注。