神马都会亿点点的毛毛张

一万次悲伤,依然会有Dream

关于毛毛张

定个小目标,成就1w技术人!

基本信息

大家好!我是神马都会亿点点的毛毛张!

研究生就读于西安电子科技大学

自媒体平台见主页侧边栏

个人技能

  • 熟练掌握Java基础、集合、多线程,熟悉JVM内存区域、垃圾回收、类加载等概念
  • 熟练使用Spring/SpringBoot/SpringMVC等基础开发框架,了解IOC、AOP等概念,熟悉SpringMVC执行流程
  • 熟练掌握MySQL,深入理解事务及其原理、存储引擎、索引、锁机制、MVCC、各种日志等
  • 熟练掌握Redis,了解数据结构底层原理、RDB、AOF、缓存穿透、击穿以及雪崩及解决方案、Sentinel等知识
  • 了解Docker、Git、Maven的基本使用
  • 熟悉计算机网络、数据结构与算法等基础计算机原理知识
  • 熟悉Python编程与PyTorch框架,熟悉多模态检索算法,已过英语四六级
  • 熟悉Linux命令以及Shell编程(实习期间部署模型)
  • 其它:了解大模型微调、及部署,了解PyTorch深度学习经典框架、NLP任务以及机器学习等
  • 具备自媒体运营能力,运营CSDN账号累计产出原创内容100+篇,收获7000+粉丝及20w+阅读量,同步拓展B站/微信公众号等多平台运营

项目经历

技术派社区项目

技术栈:Spring Boot、MyBatis-Plus、MySQL、Redis、ElasticSearch、RabbitMQ、MongoDB、Docker

项目描述:技术派是一个前后端分离的,面向互联网开发者的技术内容分享与交流平台,包括前端 PC和管理后台。我们通过文章、教程、A1助手等产品和服务,旨在打造一个激发开发者创作灵感,传播优质技术内容,陪伴开发者快速成长的技术社区。

责任描述:作为核心研发人员,主要负责登录认证、消息通知、文章教程、A1助手,以及管理后台的开发工作。

  • 通过验证码和前端保持半长链接映射关系,当用户扫码关注公众号并输入验证码后,发起回调,识别用户信息并找到对应半长链接,实现系统自动登录;
  • 将用户评论、点赞、收藏、系统消息发送到 RabbitMQ,实现消息的异步解耦
  • 利用 AOP 切面技术,当系统收到新的消息时(如评论、点赞等),自动将这些消息发送至 Kafka 消息队列中。接着,通过消费者服务从 Kafka 中取出消息,并将其存储到 Redis 缓存中等待用户消费。
  • 通过 Canal 框架实现了 MySQL 与 ElasticSearch 的数据同步,确保了实时搜索的准确性。
  • 通过 Redis 的 zset 实现用户活跃度排行,并通过先写 MySQL,再删除 Redis 的方案来保证高并发场景下的缓存一致性。
  • 基于 ThreadLocal 在登录校验拦截器中封装线程隔离的全局上下文,以便在线程内部存储用户信息,减少用户信息的数据库查询次数。
  • 实现自定义的 Markdown 编辑器,通过复制粘贴即可将非同源的图片上传至 OSS 实现智能化转链,并借助线程池和异步任务 CompletableFuture 提升系统的高并发能力;
  • 通过 Nginx 代理,将客户端请求转发到目标服务器的后端 API 接口,从而解决跨域问题;并配置 SSL证书以保证 HTTPS 请求的安全性,配置动静分离以提升资源的加载速度
  • 采用 HandlerExceptionResolver 的全局异常处理策略,提高代码的健壮性,用户体验得到了很好的保证
  • 通过 AOP +TracelD 记录接口访问日志,实现任务的追踪、监控和诊断。
  • 集成本地缓存 Guava 和 Caffeine,有效提高服务的吞吐率,QPS 经过实测提升了近 30%;
  • 为了满足社区在高并发场景下业务 ID 的唯一性和可追溯性,我们实现了一套基于雪花算法(nowflake)的ID 生成方案,进一步降低了ID生成的延迟。
  • 通过 Liquibase 实现数据库表的自动创建和初始化,以及版本管理,并且兼容 MVSQL和其他不支持Liquibase 的数据,如 mariadb。
  • 通过提前建立 Socket 链接,来解决本地服务启动时 8080 端口可能被占用的问题;
  • 搭建 Redis 集群、数据库的读写分离,以实现服务的高可用和高性能;
  • 引入 Caffeine + Redis 构成多级缓冲,解决热门数据(首页流媒体、专栏教程)的吞吐量瓶颈
  • 通过集成 xxl-job 实现了定时任务的管理和执行,如自动清理过期文章缓存、社区数据统计等
  • 借助 Redis 的 zet 数据结构实现轻量级的作者白名单,提升优秀作者发布文章的用户体验;
  • 我们通过 Shell 脚本实现了一套可以在 Linux 生产环境下一键源码部署源码的成熟方案,极大缓解了社区在生产环境下热部署的压力。同时也支持 Docker 容器化部署,显著提高了社区的运维效率。
  • 采用自旋锁策略优化缓存架构,针对热 key 的并发访问进行同步,防止其失效时导致的缓存击穿
  • 派聪明 Al 助手通过 WebSocket 实现前后端的及时通信,并且通过异步流的方式实现消息一点一点输出的效果;
  • 应用策略模式来支持多家 A1 大模型的灵活对接,目前已经成功集成了智谱 A Alltools API、讯飞星火 4.0 API和 ChatGPT 3.5 API.
  • 由于 AI生成复杂响应时需要等待,所以选用了大模型的流式 Stream API 并结合 SSE 实时推送返回给前端实现消息一点一点输出的效果。
  • 鉴于生成式的回答可能存在不可靠信息,所以借助敏感词校验开源库 sensitive-word 对用户输入内容和响应内容做了自定义过滤,极大保证了内容平台的合规性。
  • 利用 Spring Boot Actuator 集成 Prometheus 和 Grafana 搭建一套完整的服务监控体系,确保了社区平台的稳定运行。
  • 结合 MyBatis 拦截器和 DFA 算法实现了一套完善的敏感词自定义过滤方案,确保了社区内容的健康和安全
  • 通过 React+Ant-Design+Vite+ECharts 完成了 Admin 端的开发工作,界面非常漂亮,并且极大地提高了项目日常的运营效率。
  • 利用 RestHighLevelClient 接入 ElasticSearch 的全文搜索能力,极大提升了首页文章的关键字检索速度,同时兼容 ES 未安装时继续走 MySQL 的查询逻辑。

睿思积分商城-秒杀业务模块

技术栈:SpringBoot、Redis、MySQL、RocketMQ、MyBatis、Nginx

项目描述:睿思为西电内部使用的论坛,本项目为睿思积分商城开发了秒杀业务模块。

个人工作

  • 使用Redis的zset作为延时队列,在秒杀活动开始前一段时间将所需数据存于缓存。
  • 秒杀信息验证业务中使用了秒杀大闸,创建订单业务中使用令牌桶与队列泄洪,实现了流量削峰与限流。
  • 使用RocketMQ事务型消息异步同步数据库,解决了高并发下扣减商品库存带来的锁竞争问题。
  • 使用Redisson对秒杀创建订单业务加锁,防止用户重复下单。
  • 使用Nginx作为动静分离服务器以及反向代理服务器,实现负载均衡。