# stone-monster-backend **Repository Path**: arookiecoder/stone-monster-backend ## Basic Information - **Project Name**: stone-monster-backend - **Description**: 微服务结构拆分、自己开发的通用组件、热门框架整合封装、日常开发总结 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 7 - **Created**: 2023-09-21 - **Last Updated**: 2023-09-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README **csdn博客:**[https://blog.csdn.net/Hellowenpan?spm=1000.2115.3001.5343](https://blog.csdn.net/Hellowenpan?spm=1000.2115.3001.5343) **个人博客**:[http://www.bad-guy.cn](http://www.bad-guy.cn) ## 项目依赖关系说明 ![项目依赖关系](https://gitee.com/mr_wenpan/stone-monster-backend/raw/master/images/stone-monster%E4%BE%9D%E8%B5%96%E5%85%B3%E7%B3%BB.png) ## 项目代码整体结构 ![项目代码结构图](https://gitee.com/mr_wenpan/stone-monster-backend/raw/master/images/%E4%BB%A3%E7%A0%81%E7%BB%93%E6%9E%84%E5%9B%BE.png) ## 项目打包步骤 1、先打包stone-hzero-starter-parent,然后再单独打包stone-hzero-starter-mybatis-mapper 2、然后再整体打包stone-monster-backend 3、然后打包各自需要的模块即可 ## 项目所包含知识点 - 微服务拆分,如何优雅的拆分各个微服务,服务依赖关系管理,打包部署 - 分布式限流方案实现(基于Redis + lua实现固定时间窗口限流方案,基于Redis + lua实现固定令牌桶限流方案) - 自定义starter开发各个公用的组件,springboot自动配置,以及如何在项目中如何使用自定义starter,如何在starter中提供给使用者自定义可扩展接口,以及使用方如何通过注解自由决定是否开启starter相关功能 - 自定义基于logback的日志增强插件,方便的自定义打印日志入参出参(包含、或排除某些字段或指定模式下才打印日志),一次调用统一traceId便于问题追踪定位问题,多线程情况下统一父子线程的traceId,远程调用的情况下保证traceId一致。提供给使用者自定义可扩展接口 - 基于redisson封装生产可用的分布式锁实现(可适配Redis各种部署模式(比如单机模式,集群模式,主从模式,云托管模式等)) - 基于curator封装生产可用的zookeeper分布式锁实现 - 基于spring注解切面的方式实现加密解密方式动态可选的注解加密解密(比如使用md5加密,使用rsa加密解密,使用aes加密解密等) - 基于spring的消息机制实现消息适配器以及某些定时任务同步数据的触发器,实现代码层面的解耦以及公用方法提取缩减代码量 - 借助第三方组件Redis实现流程器,实现代码解耦合,且代码执行流程关系可动态配置组合,公用代码节点动态复用等 - redis动态切换使用的db实现 - 多线程使用、线程池使用、多线程并发工具类、threadlocal使用及帮助器 - 常用辅助工具类 - 分布式任务调度 ## 项目待实现功能 - 定时任务调度功能 ## 其他 暂无