语言:
Java 基础:熟悉Java 编程语言,使用两年,掌握集合框架、I/O 流、异常、反射等机制,熟悉 BIO、NIO 网络模型
Java 并发:熟悉Java 并发容器和锁,如 ConcurrentHashMap、CAS、AQS 等,掌握多线程、线程池、ThreadLocal 等原理
Java 虚拟机:熟悉Java 虚拟机,掌握内存结构、垃圾回收机制,类加载机制、GC 底层算法等,了解过 JVM 调优方法
框架:熟练使用 Spring、SpringMVC、SpringBoot、MyBatis 等主流框架,熟悉 SpringAOP、IOC 等原理
微服务:熟悉 Spring Cloud 微服务架构,理解分布式基本理论,使用过微服务组件,如 Nacos、Gateway、Fegin 等
后端组件:
MySQL:熟悉 MySQL 基本使用和原理,掌握索引、存储引擎、事务、MVCC、日志、锁等机制,有 SQL 调优的经验
Redis:熟悉 Redis 的数据结构、线程模型、持久化、过期键删除与内存淘汰策略、分布式锁等机制,熟悉 Redis 高并发缓存问题的解决方案
MQ:熟悉消息队列使用场景,熟悉消息有序性、可靠性、幂等性、消息积压解决方案,了解 Kafka 高性能和高可用原理
基础知识:
数据结构与算法:掌握链表与数组、栈与队列、二叉树等数据结构,掌握排序、回溯、贪心、动态规划等算法
计算机网络:熟悉 TCP/IP 网络模型,熟悉TCP、UDP、HTTP、HTTPS 等网络协议,掌握 TCP 三次握手、四次挥手、流量控制、拥塞控制等机制
操作系统:熟悉进程、线程、虚拟内存、零拷贝、I/O 多路复用等,掌握进程间通信和多线程同步技术
其他:
设计模式:掌握单例模式,工厂模式,策略模式,责任链模式等常用设计模式,有相应的工程实践经验
Linux:掌握Linux常用命令,如ps、top、netstat、tail、ssh等
Git:熟悉Git多人协作开发及基本命令,如merge、rebase、pull、push等
项目介绍:ScheduleJob 定时任务平台是基于 Java 语言开发的一个定时微服务系统,可以当作微服务下的闹钟服务,支持高精准,高负载的定时需求处理。
个人职责:
微服务架构设计:主要运用了Spring Boot,Spring Cloud,Mybatis,MySQL,Redis、Nacos,Spring Gateway,Feign,
Jwt 等 Java 微服务通用技术。
存储设计:通过运用 MySQL+Redis 的二级存储结构,数据分片,数据有序性,数据冷热分区等设计,有效解决了高精准,高
负载等问题。
落地实现:通过引入模块化+异步化设计思路,让代码实现层次分明,模块职责清晰。有效提升了后续的扩展性和可维护性。
性能调优:为程序进行压力测试,并且找性能问题并解决,性能从一开始的 500QPS 提升到 2000QPS。
项目亮点:
高精准:通过数据的分治,有序性,二级存储结构设计,为高频扫描提供基础,同时结合 Java 线程池等技术对任务处理速度的提升,有效的将定时任务的精准度控制在最大误差 1 秒左右。
高负载:指同一时间大批量任务触发。通过引入 Redis ZSET 对数据进行分片,同时结合分布式锁实现任务的多机分发能力和扩容能力,最后再结合 Java 线程池等技术,使得高负载情况下任务也能快速处理。
数据冷热分区:有效的协调冷热数据对不同资源的占用是非常关键的。项目通过定时迁移模块 migrator 的设计,让动态的热教据一直维护在缓存方便高效存取,把冷数据放在磁盘或延迟冷数据的生成也减少了对关键缓存资源的占用。
1. 登录注册 a. 登录:用户输入手机账号,密码以及动态验证码以登录 b. 注册:用户输入姓名、密码、手机号进行注册 c. 忘记密码:用户忘记密码可以输入绑定的邮箱地址,给邮箱发送一条验证邮件,点击邮件确认后,密码将自动重置为手机号码 d. 记住密码:在登录页面中显示一
物流管理系统主要有以下功能: 普通用户端:在线寄件、 网点地图查询、订单管理、网点申请、个人中心。 快递员端:揽收管理、派件管理。 网点端:揽收管理、网点发货管理、中途收货管理、中途运输管理、指定派送管理、快递员管理 超级管理员:用户管理、网点管理、快递员管理、网点申请管