“大麦”企业级高并发实战项目亮点介绍
项目特点
项目中包括了 微服务、本地缓存/分布式缓存、消息队列、搜索引擎、并发编程、本地锁/分布式锁、设计模式、分库分表 等核心技术
项目技术
- 使用了 SpringCloud+SpringCloudAlibaba 的微服务结构
- 使用了 Nacos 作为注册中心
- 使用 Redis 不仅仅作为缓存,还使用了Lua脚本/延迟队列/Stream消息队列 等高级特性
- 引入了 Kafka 消息中间件,SpringBootAdmin 作为服务的监控通知
- ELK 作为日志的记录,ElasticSearch提供搜索和展示功能,
- Sentinel/Hystrix 作为熔断保护层
- 使用 ShardingSphere 实现分库分表,来存储海量的数据
项目架构
- 使用非对称/非对称算法对接口的数据进行加密签名,预防接口的伪装攻击
- 使用JWT生成Token并实现用户可以在多个渠道平台进行登录
- 分布式id生成,并且结合Redis+lua,解决MybatisPlus的雪花算法生成重复的问题
- 定制全局异常处理、以及接口的结构规范
- 自定义全服务链路id,能够快速查找业务问题
- 对线程池进行定制优化,支持MDC和ThreadLocal范围的数据传递
- 对Redis进行封装,实现对键的统一管理
- 设计分布式锁组件,提供切面、命令式、方法级别三种方式的使用
- 设计幂等性组件,并结合多种锁的类型来进一步提升高并发情况下的幂等效率
- 设计服务初始化行为组件,能将初始化行为更好的集中式管理
- 将数据库的分库分表功能统一管理,制定复合分片和基因法的分片算法
- 根据Ribbon/LoadBalance负载均衡的原理,实现服务部署时从灰度环境到生产环境的丝滑切换
项目地址
gitee:
https://gitee.com/java-up-up/damaigithub:
https://github.com/shining-stars-lk/damai`