项目描述

社区论坛项目

项目描述:该项目是设计一个社区论坛,方便用户发言与讨论

使用技术:本项目使用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等协议

数据结构与算法:掌握常用的数据结构(栈,队列,树等)和排序算法(冒泡,快排,堆排等)

操作系统:掌握进程线程概念,进程通信,进程同步,线程同步和死锁等