博客
关于我
轻课系统设计
阅读量:415 次
发布时间:2019-03-06

本文共 1178 字,大约阅读时间需要 3 分钟。

在家隔离两个月,生活确实发生了变化。胖了一圈虽然不太愿意承认,但也带来了新的关注点。通过这段时间的在家办公经历,我深刻体会到了内容电商的潜力。内容电商不仅仅是电商的下一个风口,更是连接消费者与价值的桥梁。

业务需求

电子商务行业正经历着前所未有的变革。购物便利性和消费民主化带来的改变,让电子商务迎来了新的发展机遇。内容电商作为下一个风口,正在重新定义电商的未来。

教育领域一直是稳健的投资领域。猿辅导、学而思等品牌的成功证明了教育内容的市场价值。如何在内容电商时代把握教育行业的机遇,是我们需要深入思考的问题。

技术实现

系统架构设计是技术实现的基础。我们采用了以下方案:

  • 数据存储

    • 基本数据存储于MySQL。
    • 不规则数据(如题目、楼层数据)存储于MongoDB。
    • 记录类型数据存储于ES(Elasticsearch)。
  • 缓存机制

    • 使用Redis分布式缓存和内存缓存。
    • 定时从Redis刷新内存缓存。
    • 更新方式支持MQ异步刷新和直接方法调用同步刷新。
    • Redis连接池参数优化至关重要。
  • 服务调用

    • 使用Dubbo进行服务调用。
    • 注意设置合理的超时时间和重试次数。
  • 网关设计

    • 业务网关负责身份认证、统一日志处理和异常处理。
  • 配置管理

    • 采用携程Apollo或阿里Nacos。
  • 框架选择

    • MyBatis Plus提供了极大的便利性,自动生成和简化SQL编写。
  • 第三方服务

    • 使用阿里云CND、OSS、MQ等服务。
    • 腾讯云提供语音识别和环信等工具。
  • 数据库设计

    数据库设计需要根据业务特点进行优化:

  • 音视频处理

    • 音视频需加密,上传前按要求压缩。
    • 文档和音视频资源文件较多,建议客户端提前下载。
  • 课程订单

    • 两种订单类型:虚拟商品订单和实物商品订单。
    • 实物订单需考虑运费和物流信息。
  • 题目数据

    • 题目类型众多,答案固定,适合存储于MongoDB。
  • 首页数据

    • 楼层数据推荐使用MongoDB。
  • 用户行为数据

    • 答题记录、课程学习记录存储于ElasticSearch,支持快速检索。
  • 数据处理

    • 单元小结、学习报告等数据可通过实时计算平台处理。
  • 性能优化

    • 维护好缓存关系,避免长调用链。
    • 使用Pinpoint分析调用链路。
  • 工具与协作

    选择合适的工具对项目进展至关重要:

  • 协作平台

    • 钉钉必备,语雀适合知识库管理。
    • Worktile适合敏捷开发,替代Jira。
  • 文档管理

    • 石墨文档和MindLinker适合协作和会议。
  • 接口管理

    • Yapi提供可视化接口管理,替代Swagger。
  • 开发建议

    在开发过程中需要注意:

  • 数据埋点

    • 及时埋点,避免上线后才发现数据收集问题。
  • 版本管理

    • 接口要有明确的版本标识。
  • 问题处理

    • 及时发现并解决阻塞性问题。
  • 最后,多次压测是确保系统稳定性的重要手段。

    以上内容只是我的个人理解和实践经验,欢迎大家交流和讨论。

    转载地址:http://umqkz.baihongyu.com/

    你可能感兴趣的文章
    MySQL集群解决方案(4):负载均衡
    查看>>
    MySQL高级-视图
    查看>>
    nacos集群搭建
    查看>>
    Nessus漏洞扫描教程之配置Nessus
    查看>>
    Nest.js 6.0.0 正式版发布,基于 TypeScript 的 Node.js 框架
    查看>>
    Netpas:不一样的SD-WAN+ 保障网络通讯品质
    查看>>
    Netty WebSocket客户端
    查看>>
    Netty工作笔记0011---Channel应用案例2
    查看>>
    Netty工作笔记0014---Buffer类型化和只读
    查看>>
    Netty工作笔记0050---Netty核心模块1
    查看>>
    Netty工作笔记0084---通过自定义协议解决粘包拆包问题2
    查看>>
    Netty常见组件二
    查看>>
    netty底层源码探究:启动流程;EventLoop中的selector、线程、任务队列;监听处理accept、read事件流程;
    查看>>
    Netty核心模块组件
    查看>>
    Netty框架的服务端开发中创建EventLoopGroup对象时线程数量源码解析
    查看>>
    Netty源码—2.Reactor线程模型一
    查看>>
    Netty源码—4.客户端接入流程一
    查看>>
    Netty源码—4.客户端接入流程二
    查看>>
    Netty源码—5.Pipeline和Handler一
    查看>>
    Netty源码—6.ByteBuf原理二
    查看>>