仿斗鱼项目

一、项目技术点

语言:java jdk17

数据库:MySQL

容器:Docker

SpringCloudAlibaba基础框架:Netty()、SpringBoot(生态好)、Dubbo(良好的高并发)、MyBatis-Plus(CRUD精简)、ShardingJdbc、

缓存:Redis+Caffeine(本地缓存组件)

网关:Gateway

消息队列:RocketMQ

注册配置中心:Nacos

项目架构图:image-20250627111902441

image-20250627124818345

各个章节核心技术梳理

用户中心:

  • 亿级数据的分库分表
  • 分布式缓存的数据一致性
  • 高并发场景下的分布式id生成器
  • 高并发下的用户标签系统实现
  • 容器化下的JVM调优

即时通信:

  • 从0到1落地直播应用下的IM架构
  • 对Netty,RocketMQ的二次开发
  • 基于MQ实现与业务下游的通讯
  • TCP长连接+WS模型的接入层
  • 容器化下的JVM调优

钱包礼物系统:

  • 钱包账户体系的搭建
  • 支付回调中台的设计
  • 高并发下送礼功能的实现
  • 海量数据的分库分表设计
  • 容器化下的JVM调优

直播应用综合篇:

  • 直播平台PK案例
  • 直播应用中的红包雨案例分析
  • 直播带货中的商品秒杀分析

二、细节实现

1、微服务模式

  • 代理微服务,客户端需要对返回的数据进行拼装组合处理

    image-20250627114721840
  • 聚合器模式,将返回的数据进行后端处理,然后将结果通过API返回给客户端

image-20250627114841631
  • 分支微服务模式
image-20250627115121151

PS:聚合器和分支微服务模式图虽然看似相同,但是是有区别的。聚合器模式更加关注组合多个独立服务的响应结果,分支模式关注条件或业务逻辑动态选择执行路径(调用不同的服务链)

  • 链式微服务(强烈避免,网络开销过大)

  • 数据共享模式,单个数据库能承载的情况下,可以进行数据共享

    image-20250627115829254
  • 异步消息传递模式:解除服务之间的强应答关系,吞吐量高、异步、解耦

image-20250627120748112

2、框架选择

2.1、Dubbo

核心特点:

  • 高性能RPC调用
  • 弹性价格
  • 服务治理:流量分配转发、可视化监控平台、生态完善、支持服务网络技术(接入到Istio)

2.2、SpringCloud

核心特点:提供一套通用的分布式系统基础组件,支持服务治理服务注册与发现,配置中心,负载均衡,监控跟踪等

技术栈:Eureka、Ribbon、Feign、Hystrix、Zuul、Archaius等

2.3、SpringCloudAlibaba

同 Spring Cloud 一样,Spring Cloud Alibaba 也是一套集成框架。Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案
技术栈:Spring Cloud Gateway,Nacos,Dubbo,RocketMQ,Sentinel,Seata等

image-20250627123707711


仿斗鱼项目
http://example.com/2025/06/27/仿斗鱼项目/
作者
Alaskaboo
发布于
2025年6月27日
更新于
2025年6月27日
许可协议