- 精通Java核心技术,多线程、锁机制、集合等基础框架
- 熟悉常用设计模式以及有实际落地使用
- 对JVM原理有深入的理解,包括内存模型、垃圾回收机制
- 对常用框架有深入了解如spring、mybatis等,熟悉spring扩展点并有实际运用经验
- 熟练使用主流的关系型数据库,如MySQL,对索引有深入理解,具备调优经验
- 熟悉Redis使用场景,熟悉备份策略,了解高并发下缓存穿透缓存雪崩解决方案
- 分布式锁,zookeeper、redis实现,分布式环境限流
- 熟悉消息中间件(rabbitMQ、rocketMQ)缓冲流量,削峰填谷
- 熟悉分布式事务解决方案,如XA、TCC、本地消息表以及基于MQ
- 熟悉Elasticsearch 搜索引擎、Logstash 数据同步
项目名称:淘宝大学(阿里巴巴集团旗下核心教育培训部门)
主要参与:云课堂、讲师系统、CRM
涉及技术:
* 基础项目框架spring、springmvc、mybatis
* 数据库中间件:tddl(分库分表)
* 缓存中间件tair/redis(分布式缓存、分布式session)
* 分布式的服务框架:HSF
* 分布式配置管理中间件:Diamond
* 消息中间件:metaQ
* 搜索引擎:opensearch(elasticsearch)
* 精卫(数据库bin-log监控)
* txc(分布式事务)
### **主要负责如下:**
### **CRM**
1. 项目主体分为用户模块、客户模块、订单模块、 云呼模块、管理模块以及报表模块。
2. 基于tair/redis实现数据缓存,接口幂等、限流等。
3. 数据库读写分离8主8从配置,通过接口拦截以及数据库sequence实现插入无感知填充主键,加入opensearch支持亿级数据快速检索。
4. 自定义注解配合spring FactoryBean实现不同业务调用不同实现。
5. 同步云呼通话记录,利用线程池以及fork-join对数据进行分片快速处理。
### **讲师系统**
1. 基于spring security + redis分布式session实现讲师、评委、机构运营三端用户登录以及三端用户不同粒度的权限控制,自定义登录处理器,增加自定义过滤器对spring security进行适配,实现同个登录页面支持三种不同用户进行登录。
权限控制基于权限表达式利用模板方法实现不同粒度权限控制(小二端使用RBAC模型控制权限,讲师使用属性、评委使用等级)
2. “精卫消息网关”实现,利用泛型+反射封装精卫消息,定义对应接口,利用spring 依赖查找不同业务方对应具体实现进行业务处理,解耦与“精卫”。
### **云课堂**
1. 学分模块设计,业务埋点实现增加学分逻辑(使用消息中间件实现业务解耦以及流量削峰填谷)使用分布式锁防止由于网络抖动或者metaQ重试机制出现的数据重复消费(数据库也会有唯一索引防止“墨菲定律”发生)。
2. 分布式锁、封装限流组件(redis+lua脚本实现)。
3. 学分、学时排行榜实现利用redis zset实现。
4. 新人入职以及钉钉通讯录变更导致的人员组织架构信息变更需要重新对相关人员所关联的新人入职培训以及学习地图自动指派以及取消指派逻辑(设计大量数据库消息监听以及metaQ消息处理)以及需要保证数据幂等性。
#