项目一:消息中间件
1. 项目目标:以尽快速度发送大量消息,并以尽快速度拉取消息(消息大小不固定、必须保证消息顺序、准确性和完整性)
2. 技术栈:线程池、顺序读写、锁、内存映射、零拷贝、磁盘优化、压缩算法
3. 项目成果:消息数量40000000条,在保证顺序、准确、完整性条件下,在79秒内发送完毕,在31秒内拉取完毕,tps达到360039.
项目二:足记App
1. 项目目标:打造一款以图片为主题的社交软件
2. 技术栈:四层负载均衡,Linux,Nginx,Jetty,Dubbo分布式微服
务,Codis,ES,ZK,Mongo,ActiveMQ,SpringMVC,MySQL一主多从
3. 我的工作:
参与需求分析讨论,确定技术方案,设计表结构,对开发任务进行分配和排期
参考阿里巴巴Java开发手册结合实际情况对代码进改造优化,制定自己的一些工程规范
对新进员工和实习生进行一些代码规范,系统架构和工作原理相关的培训 上线前的脚本准备,数据清洗
token设计,接口安全和防刷
MySQL到ES,Mongo 的数据同步服务 MySQL慢查询和线上异常日志排查
利用zk开发一个分布式锁以便在工程中使用,用来防止Redis 被打穿
利用javassist对Jedis类进行一个封装,实现自动getResource和return或close
利用btrace,jmap,jstack,jstat,jvisualvm等工具对OOM,堆外内存使用异常等问题进行排查
项目三:EDM(上海梅花信息)
1. 项目目标:帮助企业快速建立EDM邮件,在指定时刻快速批量的将邮件发出,同时提供邮件的各种跟踪数
据,比如打开量,独立打开量,打开ip等信息。
2. 技术栈:CentOS,MySQL,Tomcat,SpringMVC,MyBatis,Quartz,SFTP,七牛云存储,web
service
3. 我的工作:
- 负责整个后端的设计和实现,api基于http协议,采用restf ul风格,接口返回json格式数据。
- 自定义了参数注解并实现参数解析器,完成请求数据的提取和基本验证,只有请求数据通过验证后才能执行后续操作
- 实现了一个propertyeditor,完成string到date对象的转换,内置了常用的日期格式,也能自定义扩 展。
- 采用phant o mjs 技术对动态网页进行截图和抓取源码。
- 用spirng aop功能实现对service层代码进行log记录。
- 利用国际化资源文件对提示信息进行统一管理,方便维护和保持风格一致。
- 采用线程池技术对一些耗时操作进行后端处理,提高响应速度。
- 对cs v文件使用apache的co mmo ns 包进行分析,提取数据
- 读操作速度一般比写操作快,所以如果需要更新数据库,会先判断数据是否发生了改变,否则不执行更 新。(读多写少的情况)
- 利用jvm提供的性能监测工具jvis ualvm来进行bug查找,性能调优等工作