技术解决方案

易写课堂采用SpringCloud Alibaba技术体系等主流技术,分层架构,使用Maven构建。 数据库读写分离,支持分库、分表多个数据源配置,图片服务器分离,搜索服务器分离等。

易写课堂技术架构

易写科技Spring Cloud微服务易写课堂系统,基于Spring Cloud Alibaba整个技术体系开发,比如服务发现:NACOS,声明性REST客户端:Feign,客户端负载平衡器:Ribbon,服务熔断:Sentinel,分布式事务:Seata,高性能、高并发、高可用;互联网的技术架构、全新的UI设计;代码开源,没有任何二次封装,是国内适合二次开发的在线课堂软件。

易写课堂服务拆分和服务熔断

由于在线课堂的特殊性与复杂性,需要用户比较高的体验,不适合一台服务器搞定所有的事情,所以易写科技定位中高端,采用微服务的架构来开发,共拆分成8个服务, 每一个服务都是独立部署,每一个服务可以做集群,这8个服务是:1、系统服务;2、直播间服务;3、课堂服务;4、网关服务;5、教师端服务;6、网关服务;7、学生服务;8、分布式定时任务服务。下图是NACOS注册中心的截图:


服务熔断采用的是阿里的Sentinel,下图是Sentinel截图:

易写课堂后台项目结构和代码质量

易写课堂按照功能对包名称就行规划,分为:学生、老师、论坛、系统等,整个项目基于Maven构建,拆分成不同的微服务,水平和垂直扩展非常便捷;每一个包下面的功能都是对应起来的。


易写课堂定义了严格的编码规范,目的是让项目中所有的代码都看起来像一个人写的,增加可读性,减少项目组中因为换人而带来的损失。易写课堂编写了《商城环境配置》、《商城开发管理规范》,并有对应的formatter.xml和codetemplates.xml,这样每一个人的代码风格都是相同的,减少不必要的SVN或者GIT冲突。并且在代码中每一个接口都有非常清晰的注释,业务逻辑复杂的地方都有非常清晰的注释,为您二次开发省去大量的人力成本。 下图是部分代码的截图:

易写课堂性能优化技术

1、优化http动态请求次数,减少网络拥塞频繁发生,减少输出带宽;

2、采用Ajax局部刷新技术,动态实现小数据与服务器交互,提高浏览器处理速度,节省网络带宽流量;

3、针对CSS sprites、图片、脚本等采用文件合并技术或压缩技术,减少文件加载传输过程中带来的服务器负载或者网络带宽;

4、采用缓存技术,将复用数据进行缓存,减少响应延迟,支持集中式的分布式数据缓存服务,提供对Memcached、Redis等高性能分布式缓存系统的支持;

5、采用基于Solr的全文检索,实现高效的全站全文检索,支持现集中式的分布式全文检索服务功能;

6、采用MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy),主从复制来同步数据,读写分离来提升数据库的并发负载能力。

…………


易写课堂系统存储、备份、灾难恢复系统方案设计

关于我们  |  联系我们  |  加入我们 版权所有 ©2015-©2024 北京易写科技有限公司.保留一切权利.ICP证: 京ICP备16052268号-3