直播领域发展迅速,人才需求量极大,但能完整驾驭高并发场景下直播场景的人才还不多。 本课程通过六个高并发场景-用户中台服务,IM即时通讯,礼物打赏、直播PK、红包雨、直播带货秒杀,带你从0到1,循序渐进实战落地,让你对直播业务场景有更透彻的理解,对直播技术栈有更全面的掌握,对高并发解决方案有更强的设计与实战能力。课程旨在助力你提升在直播领域的职业竞争力。
六大高并发场景驱动教学,轻松玩转直播业务,从容面对三高难题
1、从0到1完整搞定六大高并发场景 掌握用户中台系统架构设计与开发 掌握高并发场景下的IM架构体系 掌握礼物、钱包系统全链路代码实现 掌握红包雨、直播PK、直播带货技术实现
2、掌握整套通用分布式解决方案 掌握分布式ID在业务中的生成和优化 掌握缓存数据一致性解决方案 掌握亿级数据存储方案落地 掌握高性能IM系统从0到1落地方案
3、全面提升高并发主流技术综合实战能力 实战学习MySQL数据库分库分表、读写分离 掌握分布式缓存、网关组件、配置中心技术 深入理解Docker容器技术原理和使用技巧 掌握SpringCloud Alibaba等技术栈原理及应用
设计异常的接口定义 Java public interface QiyuBaseError {
int getErrorCode();
String getErrorMsg();
} 将常用的异常类型实现给定义出来 Java package org.qiyu.live.web.starter.error;
/**
@Author idea
@Date: Created in 11:25 2023/8/2
@Description
/ public enum BizBaseErrorEnum implements QiyuBaseError{
PARAM_ERROR(100001,"参数异常"), TOKEN_ERROR(100002,"用户token异常");
private int errorCode; private String errorMsg;
BizBaseErrorEnum(int errorCode, String errorMsg) {
this.errorCode = errorCode; this.errorMsg = errorMsg;
}
@Override public int getErrorCode() {
return 0;
}
@Override public String getErrorMsg() {
return null;
} }
带你创建直播业务的数据库模块搭建 创建我们的数据库: TypeScript CREATE DATABASE qiyu_live_user CHARACTER set utf8mb3 COLLATE=utf8_bin; 创建一百张分表的脚本: TypeScript
DELIMITER $$
CREATE
PROCEDURE qiyu_live_user.create_t_user_100()
BEGIN
DECLARE i INT;
DECLARE table_name VARCHAR(30);
DECLARE table_pre VARCHAR(30);
DECLARE sql_text VARCHAR(3000);
DECLARE table_body VARCHAR(2000);
SET i=0;
SET table_name='';
SET sql_text='';
SET table_body = '(
user_id bigint NOT NULL DEFAULT -1 COMMENT '用户id', nick_name varchar(35) DEFAULT NULL COMMENT '昵称', avatar varchar(255) DEFAULT NULL COMMENT '头像', true_name varchar(20) DEFAULT NULL COMMENT '真实姓名', sex tinyint(1) DEFAULT NULL COMMENT '性别 0男,1女', born_date datetime DEFAULT NULL COMMENT '出生时间', work_city int(9) DEFAULT NULL COMMENT '工作地', born_city int(9) DEFAULT NULL COMMENT '出生地', create_time datetime DEFAULT CURRENT_TIMESTAMP, update_time datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (user_id) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb3 COLLATE=utf8_bin;';
WHILE i<100 DO
IF i<10 THEN
SET table_name = CONCAT('t_user_0',i);
ELSE
SET table_name = CONCAT('t_user_',i);
END IF;
SET sql_text=CONCAT('CREATE TABLE ',table_name, table_body);
SELECT sql_text;
SET @sql_text=sql_text;
PREPARE stmt FROM @sql_text;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET i=i+1;
END WHILE;
END$$
DELIMITER ;