升级后的领课教育系统架构更新了哪些内容?

2020-09-22 15:28:19

领课教育致力于打造一个全行业都适用的在线教育系统。除了商业版,团队也积极地推进教育系统的开源项目,希望能给做开发的朋友们带来一些帮助:
开源项目链接:https://gitee.com/roncoocom/roncoo-education


领课教育系统-商业版-最新架构如下





注册中心
早期领课教育系统(以下简称为:系统)使用的就是Eureka,Netflix 出品用于实现服务注册和发现的工具,目前该组件已经进入维护阶段不再更新。现在系统使用了Nacos,阿里巴巴出品一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。



配置中心
早期系统使用的是Spring Cloud Config,无界面管理,需要使用消息队列才能实现配置更新,目前系统使用Nacos既可以当注册中心又可以当配置中心,采用Netty保持TCP长连接实现配置刷新,拥有方便快捷的管理界面。



服务网关
早期系统使用是的Zuul,同样是Netflix 出品,用的是1.x的版本,Zuul 2.x 在底层上有了很大的改变,使用了异步无阻塞式的 API,性能改善明显,不过现在 Spring Cloud 没集成 Zuul 2.x。目前系统使用的是Spring Cloud Gateway,构建于 Spring 5+基于 Spring Boot 2.x 响应式的、非阻塞式的 API,同时它支持 websockets,和 Spring 框架紧密集成。



分布式调度
开源版采用的是传统的调度方案,较为简单,商业版采用了XXL-JOB作为分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。



分布式事务
分布式事务是分布式系统中一个永远绕不过去的话题,也是一个棘手的问题。目前领课教育系统采用了Seata作为解决方案,Seata 是一款Alibaba开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。



限流控制
早期系统使用的是Hystrix,同样是Netflix 出品,但是目前官方声明不再开发新功能。Spring官方不在推荐在后面的版本继续使用,目前领课教育系统采用Sentinle作为解决方案,Sentinel 是面向分布式服务架构的流量控制组件,主要以流量为切入点,从流量控制、熔断降级、系统自适应保护等多个维度来帮助您保障微服务的稳定性。