前一阵业务不忙,抽出时间用spring cloud做了一套业务系统框架,里面有一些自己在日常的沉淀,和一些技术博客,公号的小知识点,详见
https://github.com/beifei1/fire-cloud
目前实现的功能有:
- 利用Jenkinsfile,Ansiable,Gitlab等实现持续集成与交付
- Nacos Config使用多配置文件
- 在Jwt中加入自定义元信息
- OAuth2增加自定义授权模式实现短信,微信登录等特定业务场景
- 网关鉴权后,向下游服务传递用户信息,并在微服务API中注入
- 通过OpenFeign提供的继承特性减少重复编码
- Spring Cloud Gateway统一管理微服务API文档
- 使用knife4j提供的API增强在文档中进行接口排序, 标注常用信息等
- 使用knife4j自动加载自定义业务异常码
- Spring Cloud Gateway作为ResourceServer统一认证及权限控制,保护下游微服务应用
- 使用ResponseBodyAdvice处理响应,减少重复的Resp.ok(T)等类似操作
- 使用Jackson处理LocalDateTime响应为时间戳,前后端通过时间戳进行时间传输
- 使用ShardingSphere分库分表
- 拓展不同分布式锁实现
- 利用Mybatis-Plus快速实现乐观锁,逻辑删除
- 使用Spring Boot Admin监控微服务应用
- 为Spring Boot Admin添加Spring security支持
- 自动业务异常及系统异常传递及处理
- 实现网关API白名单控制
- 在网关实现API防重放
- 通过消息队列及Mysql实现最终一致性,并提供统一API服务
- 使用雪花Id算法生成分布式Id