熟练掌握后端java语言,具有良好的编程习惯,掌握JDK8新特性。
熟练掌握Spring/SpringBoot/SpringCloud/MybatisPlus等流行框架。
熟悉分布式事务,分布式对象储存。
熟练掌握非关系型数据库Redis、分布式锁。
熟练掌握关系型数据库MySQL、掌握多种索引使用,能独立分析需求设计数据库。
熟练掌握中间件RabbitMQ,Kafka消息队列。
熟练使用Nginx,配置静态资源服务器,配置SSL证书.
掌握搜索引擎ElasticSearch,熟悉相关API,分组聚合,统计。
熟练掌握Jenkins、Dokcer等工具的使用。
熟悉Linux常用命令和操作,掌握常用软件的部署,集群搭建。
熟悉Rancher云平台的搭建和容器编排技术,对于服务的自动化扩容、缩容。
项目综合描述:
医学通是面向医学教育的网络教学平台,旨在提供医学教育相关的教学资源、教学工具、交互及协作功能,以支持医学院校、医院、医疗机构等教学单位的师生教育和研究活动.该系统涵盖众多服务,用户中心,课程中心,考试中心,评价中心,商品中心,优惠卷中心等,整个系统架构采用是阿里P8带队,经过多个版本迭代,用户量过百万。
项目技术栈:
Spring Cloud Alibaba+SpringBoot+Mybatis-plus+Redis+Mysql+Git+Maven+RabbitMQ+JDK8+OSS
开发部署环境:
Mac+IDEA+Gitlab+Jenkins + Docker+ Rancher容器编排
模块一:用户中心+优惠券中心
模块描述:
用户中心+优惠券中心是业务核心内容,支持用户多通道注册、防刷和恶意登录破解、个人资料维护,黑名单控制等功能;优惠券支持多类型配置,无门槛,满减,新人卷,支持高并发下领劵和释放,支持一体化监控-自动化扩容等等功能。
个人职责:
1.负责用户微服务注册-登录模块开发,支持多渠道验证码发送和邮箱注册(使用工厂模式加策略模式实现),具有防刷防恶意注册,越权设计等;
2.对接新用户拉新福利模块,采用MQ消息解耦,保证数据最终一致性和可靠性投递模块开发.负责优惠券微服务设计,支持多种规则配置,无门槛劵-满减劵-福利劵,限领张数等配置。采用redisson分布式锁解决高并发下单用户超领,和乐观锁解决优惠券超发问题。
3.对接订单中心,改造优惠券核销和释放功能,采用延迟队列+本地Task解决分布式事务问题,(之前方案是采用Seata解决分布式事务,后采用MQ延迟队列+Task支持更高的并发)
模块难点:
1.优惠券服务-领取和释放需要支持高并发保证安全防止超发超领,
2.需要防止灰产恶意注册和领劵造成公司活动资损,
3.防止有效token过多,导致安全性问题。
模块二 :考试中心
模块描述:
考试中心是在一段教学的教学课程结束或者在教学中对规培生进行考试。支持万人同时在线考试以及试题的自动批改,以及考后复习等功能。
个人职责:
1.负责考试微服务的考试题库,支持用户自定义添加题库,用于平常练习.具有防重提交,越权设计等;
2.考试题的自动组卷,支持用户自定义题目和自动组卷,支持多种配置规则,选择题,填空题,主观题自由组合;
3.负责考试微服务的考试答题,规定答题时间到自动提交试卷和自动批卷,采用MQ延迟队列进行试卷自动提交以及自动批卷;
4.对接统计中心,定时推送分数数据进行统计。(使用定时任务微服务进行定时任务的配置)
模块难点:
1.在答题过程中,提交题目答案频率较高,应提高接口效率,
2.提交试卷时,防止答题重复提交,带来不好的用户体验。