“大麦”企业级高并发实战项目亮点介绍

项目特点

项目中包括了 微服务、本地缓存/分布式缓存、消息队列、搜索引擎、并发编程、本地锁/分布式锁、设计模式、分库分表 等核心技术

项目技术

  • 使用了 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负载均衡的原理,实现服务部署时从灰度环境到生产环境的丝滑切换

项目地址

相关推荐
Dola_Pan3 小时前
Linux文件IO(二)-文件操作使用详解
java·linux·服务器
wang_book3 小时前
Gitlab学习(007 gitlab项目操作)
java·运维·git·学习·spring·gitlab
蜗牛^^O^4 小时前
Docker和K8S
java·docker·kubernetes
从心归零4 小时前
sshj使用代理连接服务器
java·服务器·sshj
王中阳Go5 小时前
字节跳动的微服务独家面经
微服务·面试·golang
IT毕设梦工厂5 小时前
计算机毕业设计选题推荐-在线拍卖系统-Java/Python项目实战
java·spring boot·python·django·毕业设计·源码·课程设计
Ylucius6 小时前
动态语言? 静态语言? ------区别何在?java,js,c,c++,python分给是静态or动态语言?
java·c语言·javascript·c++·python·学习
凡人的AI工具箱6 小时前
AI教你学Python 第11天 : 局部变量与全局变量
开发语言·人工智能·后端·python
是店小二呀6 小时前
【C++】C++ STL探索:Priority Queue与仿函数的深入解析
开发语言·c++·后端
七夜zippoe6 小时前
分布式系统实战经验
java·分布式