基础知识:熟练使用JavaAPI,熟悉集合、I/O、反射、JDBC、Stream、Lambda等相关知识,掌握代理、工
厂、单例等常用设计模式;
多线程并发:熟悉线程、锁、线程池、ThreadLocal、CAS等并发技术,通过阅读源码掌握线程池的核心参数
和运行原理,熟悉BlockingQueue、ConcurrentHashMap、CopyOnWriteArrayList等并发集合;
JVM虚拟机:对JVM内存模型(内存分配策略)、垃圾收集器及类加载机制有一定的了解,掌握JConsole、
Arthas、GCViewer等常用JVM工具的使用;;
数据库: 熟练使用MySQL,掌握事务、日志、索引及锁相关技术,了解分库分表中间件Mycat,熟悉redis、
mangodb、Oracle、DB2、Sybase等数据库开发;
操作系统:熟悉Linux常用指令、Shell脚本;
开发框架:熟悉SpringData、Spring Boot、Mybatis-Plus、Spring Security等框架技术,阅读过SpringBoot
部分底层源码,理解自动配置原理;
微服务:掌握Gateway网关、Nacos服务注册发现、Feign和Dubbo服务调用、Seata分布式事务、Sentinel流
量哨兵等微服务组件技术;
常用中间件:在实际开发中,能够使用RabbitMQ/RockeMQ、Elasticsearch、Redis、Kafka、Dubbo等中间
件解决流量削峰、异步处理等高并发问题;了解倒排索引、分片集群等概念;
计算机网络:理解OSI网络模型,熟悉HTTP、HTTPS、TCP、UDP等网络协议,掌握TCP的首部格式、连接管
理、重传、滑动窗口、拥塞控制等TCP协议相关内容;
工具:熟练使用 Git、IDEA、ChatGPT、Swagger、Navicat 等工具提高开发协作效率;
智搭伙伴 访问地址:https://smart.hycode.top
Spring Boot 、 Spring Task 、 MyBatis Plus 、 EasyExcel 、 Redis 、 Docker 、 线程池 、 Redisson
项目描述:
基于 Spring Boot + Vue3 的移动端网站,实现了分布式登录,用户管理,按标签检索用户,推荐相似用户,组
队等功能。
技术要点:
为解决同一用户重复加入队伍、入队人数超限的问题,使用Redisson分布式锁来实现操作互斥,保证了
接口幂等性;
使用编辑距离算法实现了根据标签匹配最相似用户的功能,并通过优先队列来减少 TOP N 运算过程中的
内存占用.
使用 Easy Excel 读取收集来的基础用户信息,并通过自定义线程池+CompletableFuture 并发编程提高
批量导入数据库的性能;实测导入 10 万行的时间从120秒缩短至20秒;
自主编写 Dockerfile,并通过第三方容器托管平台实现自动化镜像构建及容器部署,提高部署上线效率
;
为解决首次访问系统的用户主页加载过慢的问题,使用 Spring Scheduler 定时任务来实现缓存预热,并
通过分布式锁保证多机部署时定时任务不会重复执行。