一九一一未来教育

我要开发同款
proginn15392452602022年10月17日
107阅读

作品详情

1911学堂-家校共育平台
涉及技术栈:springboot、springcloud、阿里云dts、Kafka、rocketmq、redis、elasticsearch、redission
项目背景:1911学堂是面向家长教育的平台,家长、教师、学校、机构、企业、政府机构入驻平台后,可以在平台发布自
己的动态、文章、直播、视频、奖学金课,也可以学习他人或机构发布的课程,可以在平台加入孩子所在的学校,创建孩子
档案,邀请亲友、老师或者学校关注,在孩子档案中可以创建孩子的校内校外学习记录、获奖记录及活动记录。
项目职责:负责公司平台的架构、设计、开发工作。
工作业绩:
架构、研发数据迁移服务采用阿里的DTS监控MySQL binlog日志,监听MySQL表结构、及数据变化后写入Kafka中,
该服务就是从Kafka中消费被修改的表结构或者数据然后写入Elasticsearch中,我在服务中采用的是配置的方式完成数
据迁移工作,只需要简单的配置即可完成具体需要迁移到ES中的表,并且可以指定具体的字段和ES索引名称。
研发平台会员、家长排行榜、孩子档案、数据统记功能。
平台性能优化工作。年前有一场各个中学在1911家校共育平台的大型直播活动,由于平台的性能问题,当每秒50的QPS
的时候服务就崩溃了 ,导致此次大型直播临时终止了。针对于这个问题对接口、前端展示做性能优化,保证每秒可以承
受上千的QPS
优化方案:
数据库:采用sharding-jdbc做读写分离,SQL上做合适的索引,优化SQL语句,避免超过两个以上连表查询,把几百
毫秒的SQL都优化到50几毫秒以内
缓存层面:对于大表SQL做mybatis二级缓存,对于文章、动态、视频、直播等的点赞、转发、收藏数量都存入redis
中,查询的时候从redis获取
搜索展示层面:用户表做迁移Elasticsearch操作,用户列表展示、全局搜索走ES查询
接口层面:做业务拆分,之前是把所有数据,包括客户端跳转之后的数据一个接口都提供了,修改后做具体的数据提
供,比如说发现页展示的是用户动态数据,里面只有动态名称及用户名称等常用字段,那么接口返回的时候就返回需要
展示的字段,其他字段客户端重新请求接口访问,保证从原来一个接口需要好几秒到现在只用不到100毫秒
通过以上数据库层面、缓存层面、分布式搜索层面保证一个接口在100毫秒以内,尤其是数据库层面避免了慢SQL、大
SQL导致MySQL负载100%
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论