1. 精通Java语言及J2EE体系结构、基础扎实,具备面向对象编程思想
2. 熟练掌握SpringBoot、Spring、SpringMVC、MyBatis等JavaEE框架
3. 熟练掌握SpringCloud、Dubbo等RPC框架的使用
4. 掌握RabbitMQ、ActiveMQ等消息中间件
5. 有丰富的微服务和分布式开发经验,熟悉RESTful风格的API接口编写
6. 熟练使用netty框架定制各种服务端通信
7. 熟悉Vue、jQuery等前端开发框架
8. 熟悉JavaScript,Ajax,Freemarker,JSP,Servlet等WEB技术,了解CSS的简单使用
9. 熟练使用Intellij IDEA,Eclipse,Git,Maven项目管理和项目构建工具。
10. 熟悉应用服务器软件Tomcat等容器配置和部署,熟悉Nginx的配置使用,熟悉Linux常用操作,熟悉Docker容器部署
11. 掌握java反射机制及多线程技术,了解java内存模型
12. 熟悉wepy框架进行小程序开发
13. 熟悉vert.x框架,精通mongoDB
项目名称:九路智能围棋
项目时间:2018-02 ~ 至今
项目描述:智能围棋是一款软硬件结合的教育产品,用户群体是 3-9 的儿童,用于儿童的围棋入门和启蒙教育。用户通过微信公众号 给九路棋盘配网就可以连接上我们的云端服务器。用户通过硬件按钮或者小程序就可以体验 AI 对弈、等级考核、题库练习等功能。 该项目分为硬件模块、netty 通讯模块、围棋模块、微信模块、支付模块、用户模块、管理端模块、报表模块。整个项目服务端使用 SpringBoot、SpringCloud、MyBatis 搭建,数据库使用 MySQL、NoSql(Redis),使用 RabbitMQ 做消息中间件,前端使用小 程序、Web。项目部署在阿里云上。 该项目技术团队有 5 人:技术负责人 + 2 名后端 + 1 名前端 + 一名测试 责任描述:我在这个项目中负责 netty 通讯模块、围棋模块,参与微信模块(小程序)和用户模块的开发,具体如下
1. 同硬件团队对接进行硬件协议的制定,并使用 netty 进行协议的具体开发 2. 围棋规则引擎的开发
3. 小程序接口的开发和提供(不包括支付)
4. 对围棋、用户两个模块的数据库设计和概要设计文档的编写
技术要点:
1. 使用心跳检测机制实现和硬件的长连接,并把每一台在线硬件的 Channel 缓存起来,这样可以将小程序、服务端、硬件三者 串联在一起,实现消息的精准推送。
2. 使用多线程的技术把 netty 线程与我们的业务分开,netty 只关注设备的连接断开以及消息的接收和发送。在 netty 接收到信 息的时候,会将该消息交由业务线程池中的空闲线程处理(或者加入队列),这样 netty 就能更快的接收下一条指令,显著提升 性能。
3. 使用线程变量 ThreadLocal 解耦
4. 使用 Redis 维护设备连接的上下文,保证设备不会出现数据错乱的情况
2
工作经历
5. 使用 RabbitMQ 做定时任务的调度,可以动态的修改定时任务执行的时间。实现对于每一台设备使用情况的数据处理
6. 对接科大讯飞的文本转语音接口将题库中每道题目的描述转成音频。
7. 使用 ossFs 把阿里的 oss 文件挂载到本地的服务器,文件存在本地服务器即可在 OSS 服务上同步,前端直接使用 url 即可访 问对应的音频或图片。
8. 使用 Nginx 反向代理,解决微信接口的相关调用问题和小程序的跨域问题
9. 使用 shiro 做权限管理
10. 由于小程序不支持 cookie,所以使用 redis 实现了 cookie 技术
11. 使用了 spring cache 并且使用 redis 覆盖其默认实现,大大提升了部分查询效率