使用过的技术:springboot、springcloud、mybatis、elasticsearch、rabbitmq、redis、java8、mysql、sqlserver、timescale(PostgreSQL时序数据库)、netty
了解jvm虚拟机内存模型与回收机制、23种设计模式
使用过的工具:eclipse、idea、svn、git、powerDesign、maven
2020.04-至今 公司: 广东联凯智慧有限公司
项目: 冷链仓库设备监控系统
项目描述:该项目属于冷链仓库设备监控项目,对设备实时节点信息数据(温度、报警、用电用水量)进行采集,该项目有mqtt topic后台管理、modbus采集器、统计分析展示三大部分,Mqtt后台管理定制发布与订阅topic,然后通过中间数据转换到modbus协议层并采集,最后入库,统计后台和大屏展示端展示数据以及监控设备状态信息。
工作职责:参与功能开发,项目架构(微服务),分解项目任务安排,编写技术文档
技术细节:每分钟采集的大量设备数据存入timescale时序数据库中,同时设计小时、天、月表,根据数据库定时计划从原始表数据中聚合一条数据到对应时间节点表中,每个时间节点表用于统计分析。
微服务架构springcloud使用feign远程调用、nacos注册中心,gateway网关等等功能, 划分服务有基础服务(设备管理、mqtt管理、报警管理), 采集服务(modbus采集), 业务展示服务(页面数据展示,统计分析等等),websocket设备数据监控服务,consumer服务聚合服务,
Gateway服务,持久层使用的是mybatis-plus,后台数据采用分库策略,
将管理相关的业务归类为一个库,数据采集相关的归类为另一个库。
采集器使用多线程并发,线程内采集数据时使用队列依次插入数据库。
使用rabbitmq实现最终一致性事务。
基于JWT登陆与鉴权实现。
2018.06-2020.04年 公司: 建材易科技有限公司
项目: 建采网建筑采购网站
项目描述:pc门户+移动端+运营后台(门户、移动面向买卖家,运营后台面向建采网公司对平台管理),不管是商城下单、招投标、集采业务(团购模式),最终的入口都是下单然后走向订单流程,打通各业务的连通性。
工作职责:参与功能开发,首页商城、自营与第三方供应商订单系统,集采业务,招投标,会员体系,报表统计、优选商家、pos机订单推送相关、换购活动优选商家、pos机订单推送相关、换购活动
技术细节:针对商品搜索有做过elasticsearch的的实践方案,自定义的特殊符号分词器。
参与过项目组由原来的一体式项目分解成微服务的任务,分拆的项目架构为一个后台客户端连接多个微服务,其中使用到的组件有zuul路由功能、eureka、feign、Hystrix、spring-config配置中心。
Rabbitmq实现订单推送,延时队列取消未支付订单。
xxl-job定时任务实现推荐门店是否在指定时间内展示在首页
xxl-job定时扫描时间活动的开始与结束;每日零时定时清空日库存;定时扫描活动订单记录表,将半年前的数据迁移到备份表,减少表查询负担
第三方商家与pos机对接的RSA公钥密钥校验与推送实现
基于spring.security包RSA加密与签名、解密与验签的实现
用户下单时展现换购活动商品列表,抢购换购商品时库存加减与并发控制
设计模式的使用:
-供应商店铺资源管理-工厂方法
-订单日志记录-建造者模式
-生成特殊的订单-适配器模式
-生成订单时触发的一系列业务操作(生成采购单、物流单记录订单日志等)-外观者模式。
使用jasper studio实现订单报表打印。
订单多重拆单(拆分的子订单可以继续拆,且父单不可用,各子单可以回滚)。
商城抢购活动——redis-list缓存秒杀商品,redis-key过期触发活动时间开始与结束,websocket广播时间开始与结束,rabbitmq异步处理生成订单、发送短信、生成采购单等操作,hystrix限流策略。
2016.03-2018.04年 公司: 赢帆科技有限公司
项目: 公司内部OA系统、赢帆教育官网、数据中台
项目描述:公司内部OA系统针对公司不同员工的权限使用不同业务功能实现的一套管理系统,集成的功能有:人力资源管理、业绩管理、产品和服务管理、客户管理、销售管理、系统设置等等。