易写课堂由京东、阿里互联网人开发而成,拥有解决高并发、高可用、秒杀等方面丰富的经验。 易写课堂架构在同行业处于的领先地位,根据访问量提供一整套的解决方案,得到了广大客户的认可。
该方案至少需要配置两台服务器,需要把应用服务器和数据库服务器做物理分离。一台是应用服务器,安装网站后台、前台和APP提供接口所有功能模块,一台是服务器安装Mysql数据库,保存网站的所有持久化数据。
该架构适合小型的应用,图片服务器和搜索服务都没有拆分开,所有资源都在一台服务器上,无法水平扩展,即使以后扩展的时候工作量也是非常巨大的,所以我们放弃这种方案。
易写课堂低版本也是采用SpringCloud Alibaba微服务的架构。
在线课堂不同于其他系统,系统的稳定性和数据安全性是至关重要的,方案一肯定不适应的,系统是的单点,所以必须增加应用服务器和数据库服务器来满足网站的需要。 Web应用服务器,做负载均衡;2台以上数据库服务器,做数据库主从备份,读写分离;图片服务器集群;搜索服务器集群等负载均衡相关的方案; 其中,该方案采用软件负载均衡,通常采用Apache或者Nginx来做负载均衡,在负载均衡的过程中重点需要考虑Session共享的问题。
这时服务器水平扩展,做负载均衡,易写课堂已经解决上述问题;程序垂直扩展,Web和App拆分成多个项目,可以随着访问量的增大不断的进行优化,详情见下一种方案。
用户和PV都达到百万级别以后,数据越来越多,这时候需要对数据库按照业务逻辑进行分库,可以分为:用户数据库、订单数据库、活动数据库等; 核心的表需要按照二维或者多维的方式进行拆分,比如订单、用户表等,这时并发量逐渐增大需要引入非关系型的数据库,易写课堂数据级别的缓存是采用Redis,有独立的图片服务器, 假如图片访问速度还慢的话,需要引入商业的CDN(比如阿里的OSS)来解决图片访问慢的问题。
这时主要涉及到的技术有:MongoDB、Redis、CDN、数据库分库分表、数据库读写分离和主从备份、JMS、会话的保持等等
这时网站用户量和访问量都在千万级别以上,软负载已经很难满足需求,需要更换商业的硬负载比如(F5)或者按照自身的需求 重新开发负载均衡服务器,业务需要进一步做垂直划分,分为活动、用户中心、论坛、考试等等。
易写课堂技术上基于SpringCloud Alibaba微服务技术体系。注册中心Nacos、服务熔断Sentinel、Rest接口封装feign、负载均衡Ribbon、搜索Elasticsearch……,满足您千万的用户量。