本仓库只公开了部分代码。详细项目文档建设中~~~
ZClub是一个为程序员提供交流沟通的社区,旨在为用户提供记录成长,讨论热点时事和技术博客,站内供分享日常记录和技术总结,同时提供即时通讯功能。
- SpringBoot:简化Spring应用的初始搭建以及开发过程
- SpringCloud&SpringCloudAlibaba:基于Spring Boot实现的云原生应用开发工具
- MyBatis-Plus:持久层框架,也依赖mybatis
- Redis:内存做缓存
- MySQL:关系型数据库
- RocketMQ:消息中间件;大型分布式项目是标配;分布式事务最终一致性
- Seata:分布式事务
- Drools:规则引擎,计算预估费用、取消费用等等
- XXL-JOB: 分布式定时任务调用中心,这里用来定时备份ES中的数据和进行一些聚合运算。
- Docker&Docker Compose:容器化技术; 生产环境Redis(运维人员);快速搭建环境
- MinIO(私有化对象存储集群):分布式文件存储 类似于OSS(公有)
- ES:搜索引擎,用于关键词搜索文章
- Canal:监听MySQL搭配MQ将数据增量同步到ES中
- 使用Caffeine和Redis实现多级缓存预热帖子,优化热榜刷新速度,提高大约20~50QPS,结合XXL-JOB实现定期数据对齐,更新热榜。
- 系统权限与安全模块:使用Spring Security 实现RBAC权限控制。
- 使用Gateway配合Redis实现统一鉴权以及分布式会话共享功能,在网关层实现统一的全局异常处理。
- Canal监听MySQL,搭配RocketMQ实现同步服务,增量往ElasticSearch同步数据,提高数据同步效率。
- 使用ElasticSearch实现全文搜索功能,基于倒排索引和lk中文分词器,准确匹配搜搜结果。
- 使用RocketMQ和令牌桶进行特定接口的削峰和限流,保证系统正常运行。
- 使用布隆过滤器,过滤掉大量非法数据请求,预防缓存穿透问题,使用逻辑过期来预防热点Key访问导致缓存击穿。
- 图片与视频上传:通过策略模式整合文件存储功能,使用大文件分片上传,使得100MB文件从3000ms优化至400ms,设计并实现断点重传和秒传功能。
- 即时通讯模块:研究单人与群聊,离线消息拉取方案,通过Netty与MQ实现消息的实时性传输与可靠性,保证后续集群扩展。