社区论坛项目
项目描述:该项目是设计一个社区论坛,方便用户发言与讨论
使用技术:本项目使用SpringBoot进行开发,使用的技术主要有 MySQL,Redis , Kafka , Quartz
主要功能:登录注册,发帖评论,点赞关注,消息提醒,热帖排行
项目亮点:
通过Kaptcha来生成验证码图片,作登录和注册的验证。
通过自定义注解和拦截器,防止用户在未登录的情况下通过url访问没有权限的页面。
利用数据结构Trie实现前缀树,对发表帖子评论进行简单的敏感词过滤。
对点赞关注等高频功能利用Redis的Set来提升性能,并通过Redis的Hyperloglog统计UV, Bitmap统计DAU。
利用Kafka来实现消息提醒功能,起到异步和解耦的功能。
利用本地缓存优化社区主页的加载,测试其QPS从9提高到196。
分布式RPC框架
项目描述:该项目是编写一个RPC调度框架,实现跨服务调度
使用技术:本项目使用的技术主要有Netty, Kryo , Hook
主要功能:实现了网络传输,注册中心,序列化,动态均衡,自动注销服务等功能
项目亮点:
通过Netty基于Nio的方式实现了网络传输。
通过自定义编码器解码器,使用Kryo的方式实现了数据格式的序列化。
使用Nacos方式实现服务的注册与发现,并使用ConcurrentHashMap来重用服务。
实现了随机算法和轮询算法来实现负载均衡。
使用单例模式获取Runtime 对象,采用线程池的方式实现服务的注销。
基于注解进行服务的自动注册,避免了手动创建服务对象
专业技能栏
语言能力:英语CET4 (527) ,英语CET6(511)
Java基础 :基础扎实,了解各种关键字,熟悉反射,继承,面向对象等相关知识
虚拟机:掌握JVM运行数据区,垃圾收集算法,垃圾收集器,内存分配策略等
并发:了解AQS,ReentrantLock,Synchronized,CAS,线程池等的源码分析及其原理
Redis:掌握Redis五种数据结构的底层实现,Redis主从复制,集群同步的相关原理
数据库:了解事务相关特性,B+树的索引原理等
数据结构与算法:掌握常用的数据结构(栈,队列,树等)和排序算法(冒泡,快排,堆排等)
计算机网络:掌握TCP/IP网络模型,掌握TCP、UDP、HTTP等协议
数据结构与算法:掌握常用的数据结构(栈,队列,树等)和排序算法(冒泡,快排,堆排等)
操作系统:掌握进程线程概念,进程通信,进程同步,线程同步和死锁等