Go语言实战抽奖系统(完整版)-2018年

  [复制链接]
查看19595 | 回复74 | 2019-6-26 23:57:42 | 显示全部楼层 |阅读模式
QQ截图20191010124522.jpg
1 ^: p- p1 c$ v〖课程介绍〗
$ U4 @. x# Y! e" x抽奖系统属于典型的高并发和高性能的系统,同时,业务需求复杂多变,对系统的灵活性和稳定性要求同样非常高。本课程先为大家剖析多种抽奖活动的共性和特性,再设计和开发抽奖大转盘系统的后台和接口。从基本功能的开发到使用redis步步优化,以及后续的策略对比,通过压力测试,让小伙伴直观的了解不同的设置导致的的性能差异,探究性能影响的关键因素。通过这门课程的学习,可以对系统的性能、并发、灵活、可靠等方面有更多的理解和掌握,迅速提升,达到中高级工程师的水平0 E9 o1 h2 V6 M% C( b! R
: t# j4 h6 d" \) h/ H( I* O
〖课程目录〗
( t/ l# f$ n1 g第1章 课程介绍【预备,初识】! v* V! b5 s5 i; Q
课程内容的整体介绍以及学习建议。/ W# ]2 G. A& g
1-1 Go抽奖系统导学 试看5 E' [) H& h& M1 C, t& t$ E7 w. V
9 N7 n+ Z$ A. z8 g
第2章 6种抽奖活动来一遍【伸展运动,舒缓热身】
5 H- Q6 L$ W- F/ w看书不如动手,本章将从年会抽奖、彩票刮奖、微信摇一摇、支付宝集福卡、微信抢红包、抽奖大转盘6种抽奖活动的实现出发,让小伙伴切身的体验下如何实现不同的抽奖活动,这些活动实现的差异和难点在哪,并示范用多种方法(互斥锁、atomic、sync.Map等等)解决并发安全问题。...% L  K- L) K" a# I7 w/ g
2-1 年会抽奖_实现分析$ @, g7 W# c* x/ f' y& q
2-2 年会抽奖基本功能实现) F. ?) g5 e0 n  d! D- S' W
2-3 编写web单元测试和并发安全问题
9 r6 M. r) a/ ]8 u! {2-4 用互斥锁解决并发安全问题
: w" p0 a2 {1 g6 D2-5 彩票_实现分析" D5 O6 p2 I* U! V) h4 j0 m3 k- M% |
2-6 刮刮乐和双色球 试看
% D3 f( _- E- x, @, y( Y8 ^. g4 N2-7 微信摇一摇_实现分析/ Z6 u9 t7 [7 J8 C: F( V
2-8 微信摇一摇实现(上): W' S, g7 v+ l, F( p" U4 H
2-9 微信摇一摇实现(下)
- A& _/ A) B, t" A2-10 bug修复和压测
% K" L, g1 ]# V2-11 支付宝集福卡_实现分析
( I+ i8 m) s" h1 l# Y, E7 d2-12 支付宝集福卡实现( Y" m' ?  \* {6 @# t4 H
2-13 微博抢红包_实现分析2 ], b4 s* S: T9 C- a) F1 F* W
2-14 实现发红包
* S" u: D* U+ b2-15 实现抢红包
* C% ~* M! f7 _6 R' W' E0 `, z2-16 均衡问题和sync.Map解决异常
/ p: K) r* g) t: Y2-17 改用chan的方式解决并发安全问题
  [" U( r+ j& q' L6 w  T6 l2-18 再次压测验证和优化改造
  d, y( ]( `, Y/ V: b( _; v( z2-19 抽奖大转盘_实现分析# }! V* w) b/ q$ v# k
2-20 抽奖大转盘初步实现: N9 A: b8 }$ f( @
2-21 sync.Mutex和atomic改造性能对比
2 n# Q' U% o5 O6 n3 d2-22 六种抽奖活动总结. [( [; w& N" m  k; ^3 d* S6 A2 M
2-23 并发编程与锁的底层原理
( D; R& c$ O0 W2 x8 o1 F* H! B  o2-24 高并发和高性能系统中锁的影响与解决办法
+ P" n) j* ~, M# y; R+ e2-25 阶段任务* X( [3 v3 J5 Z) I6 x

3 L( _: p: p2 D/ |7 E第3章 系统设计和架构设计【扩胸运动,有容乃大】8 E( R' Q* e0 m! n3 V
本章对抽奖系统和架构进行详细的设计。总结前面的开发经验,从需求分析开始入手,整理需求,提炼功能,分析完善用户操作和业务流程、数据库设计、缓存设计要点。4 [8 j% d6 n% F  l) _
3-1 需求整理和提炼
0 C3 |( G' P6 w1 K7 G2 _3-2 用户操作和业务流程3 v  v; l  w' |
3-3 数据库设计5 z. J9 k; P- C& d# L# ~
3-4 缓存设计 试看
3 _* ]+ @/ s, s3-5 系统架构设计7 l& R9 o, I! |2 a& B
3-6 系统设计和架构设计总结2 T2 x3 d8 b% ^) ^$ e; l+ O
3-7 高性能程序设计,缓存为王
$ N$ z; M% L7 b  c! o% \3-8 系统架构升级之道,关注关键服务依赖
7 Y1 ^+ D. m2 w5 P) f3 R  O3-9 阶段任务
& n  i, F) q( F+ }& u8 ?7 D0 j/ Z8 h7 v
第4章 项目框架与核心代码【踢腿运动,固若磐石】
8 ^# |: P0 E# ~7 N2 [本章开始动手使用iris+xorm先把项目框架搭建起来,并且把基础的核心代码(dao,services,comm,用户登录、退出等)完成,为后续的功能开发做基础的准备。
+ i9 y( B3 C1 g* j4-1 项目框架搭建
, Y# K3 j1 J  B7 \& i% n! i% f, R4-2 数据模型的生成
/ D+ Z$ o7 |- d4-3 核心的dao和service类
) B$ Z' h0 x  n4-4 定义dao
9 L$ D6 t' Q  P+ v0 S$ N4-5 定义service
% Z2 H& n. J- t* F4-6 定义数据库和redis配置信息
( x! U( j; ]7 w* H5 o! t4 S' P4-7 创建数据库实例及其要点( ]' M+ Y' x) \+ W6 ~! Q* ?
4-8 创建redis实例及其要点! a1 `; B+ x; M! `4 b4 ?2 L! p* W
4-9 利用iris建立web站点
/ e0 }% r5 x7 o. a2 |4 t4-10 项目配置和通用方法& _! P& d  m+ }! F, d. @
4-11 web站点初始化构建
4 h5 l" ]8 X8 c2 f3 v' D( x4-12 实现IndexController
9 U5 p/ X$ p3 @4-13 完善路由和main.go文件: |/ ?6 b5 M7 [
4-14 登录和退出:安全值校验和防篡改
* b5 |0 Z# d6 z/ x  I8 T$ e5 g4 J6 V
第5章 后台功能开发【体侧运动,运筹帷幄】
5 b# E7 B2 _2 I: z4 {6 W一个可视化的管理后台可以更好的帮助产品运营来自助操作,本章将实现相关功能并完成抽奖活动的定制规则设置。
/ O$ u4 O; X- P, w4 k) |5-1 后台功能开发介绍
6 |4 z3 z' N2 }6 j! W8 I9 t5 S5-2 页面模板和AdminController. @  ~/ ?" [. N7 A- C5 u& W
5-3 奖品管理实现(上)2 F9 j' Y, m* \+ n
5-4 奖品管理实现(中)
8 q5 g- {! S1 l) w/ N7 i5-5 奖品管理实现(下)3 ]& g  e; F5 e2 Y/ E
5-6 优惠券管理实现(上)
, C6 |5 M) b& b8 r5-7 优惠券管理实现(下)
( V1 j) I/ g  q7 b8 G' u" d- P5-8 中奖记录管理
0 W0 k. l6 F) w8 r& T' H/ _5-9 用户管理: t- h" |# i& ~9 B# T4 H
5-10 IP黑名单管理
: G& D0 s) g/ U3 @; j; P: V2 ?% n. v! s; O9 r, G- z3 E
第6章 基于mysql的抽奖功能开发【体转运动,基础版本】9 b1 ]; r1 h, v+ u
本章将先完成后端抽奖接口的实现,完成抽奖业务逻辑和数据流程的开发。
' a& |+ ~/ a0 h8 Q( d9 \2 v) k" u6-1 抽奖接口开发细节分析, ^5 h$ H' K" N3 n- @* L
6-2 用户并发操作的锁
" Q3 ?% u5 x- r9 Q& T  z! L; R6-3 验证用户、IP今日参与次数(上)( _! a9 Y' B. k
6-4 验证用户、IP今日参与次数(下)
# |) N5 l& m6 O6-5 用户、IP黑名单的处理: C# K& o3 k( M- |% ~/ o2 s. M
6-6 抽奖的实现
9 ^/ B' ^" y, m3 U  i; A6 T6-7 发奖的实现4 R& h+ F' }" I$ O
6-8 中奖记录和返回结果
6 }4 Y5 G, z( U6 d) e( g
9 W( ?" S, A3 p- X第7章 使用redis缓存优化【全身运动,升级版本】
& B7 i+ b8 O* C  Q& u; v, u. @, t" M/ t本章引入redis来优化整个系统,减轻对mysql的依赖,提高抽奖接口的性能。
9 M+ X' R% m3 Y, ~2 C7 x7-1 分析_奖品数据全量缓存
" P  t' a9 t- O9 H) H1 `- V7-2 实现_奖品数据全量缓存(上)- o5 f* Y$ ?7 Q7 c$ N( D- o& q
7-3 实现_奖品数据全量缓存(下)
7 o0 G9 \: D8 e8 z: m7-4 分析_单个用户数据部分缓存2 a3 r* X, w- ~( S6 G
7-5 实现_单个用户数据部分缓存6 q" G7 r. ]4 `
7-6 分析_IP黑名单数据缓存
7 S- g7 l0 [- q2 c5 f" u8 {7-7 实现_IP黑名单数据缓存& I( V/ ]* R" |' h  Q- e
7-8 优化IP今日抽奖次数* J" |1 Y, W9 s
7-9 优化用户今日抽奖次数
, p9 v1 x+ }) \3 J, w: t7-10 用户今日抽奖次数(上)
" ]9 }* C7 `/ _: H& e1 ^7 K7-11 用户今日抽奖次数(下), v. `- G6 H6 R  |! F  |0 x
7-12 为什么使用奖品池, w5 Z0 G+ U+ c9 ~
7-13 初步使用奖品池, z+ B9 n& C& E2 L: E
7-14 分析_优惠券的全量缓存
1 _& ]+ p4 k; v0 a  @7-15 实现_优惠券的全量缓存(上)
- N" @+ R4 u" I  ~  z3 v7-16 实现_优惠券的全量缓存(下)
, q/ u, n1 I; m9 g9 x. ?7-17 使用redis优化总结& l- q3 e( v" D" j

$ B# ]4 W9 h+ w第8章 奖品池以及发奖计划的实现【跳跃运动,极致版本】
+ m* [. ~! @0 A  n本章实现两个基础服务功能(更新发奖计划,自动填充资源池),来完成奖品的发奖计划数据维护,保证可以合理的把奖品填充到奖品池中。
; Z& n+ S5 x0 c+ R8 w3 v; T/ |8-1 发奖计划设计分析- A8 J% w/ ?. N0 v8 N. k  q
8-2 实现发奖计划(上)
7 b1 A0 K3 z$ b8-3 实现发奖计划(中)
3 M7 ^0 ]0 N/ u8-4 实现发奖计划(下)
* E1 U* B/ N' m# s; F3 A' I+ D8-5 自动填充奖品池分析
) w9 {/ j) X! @6 K- c8-6 实现奖品池(上)# `1 Z& \9 y7 H% N; s4 j  b$ V0 A/ r
8-7 实现奖品池(下)
( Z' E* @* G& ~! P8-8 总结发奖计划和奖品池9 e5 t* J2 |. Y' t7 b
, p, X, r9 I/ l! \. v/ f
第9章 完整性演示以及更多总结【整理运动,整体交付】. J1 q! S1 I. N' M2 V& f
实现前端页面的大转盘效果,完整的演示最终的效果。通过不同的设置以及测试方法,利用压力测试工具对系统性能进行分析,深入了解业务逻辑以及技术实现的细节,对系统性能的影响,明白时间消耗的关键点。而更多的思考和总结,让抽奖类活动的有更多玩法。 ...) I2 p2 O7 w8 a# I4 S
9-1 前端大转盘分析# y3 N& w# g  e3 Z
9-2 前端大转盘效果实现
3 h* \( \% w9 D/ u* E8 e9-3 优化奖品设置分析# p6 w1 m9 r8 R+ ?: i7 ^7 b' E
9-4 优化发放奖品分析
  f9 ?6 ^4 ~) ~% L9-5 再来一次压力测试吧' r( _" V' u7 j1 f/ i
9-6 压力测试+ |( F' Q& r7 @. \' `' R
9-7 更多运营策略
" a# r- R- Y$ ^6 K5 x0 [. ]7 ^& ^( P
5 a" e; {1 B3 {第10章 引入thrift框架【附加运动,扩展服务】
, q5 g& k" @5 u: [" b通过rpc框架,将抽奖系统服务化,可以更加灵活和简单的接入到更多的业务系统中。
; g* G7 R1 T- P+ h10-1 了解thrift7 m5 A) p/ a% O) j' v4 {0 z
10-2 定义thrift文件4 U! Y# {6 @: e% q
10-3 生成代码3 f/ e1 g2 x/ K
10-4 服务端接口(上)9 q! H1 _0 }6 S8 W% ^
10-5 服务端接口(中)
# T% {2 @* i0 k% A# H% @10-6 服务端接口(下)
% k+ S3 I9 A$ J5 y$ @10-7 客户端接口: H/ p* W6 \- M* ?9 a; p9 X. t. T
10-8 总结
/ F0 j# I0 K3 a' \; z! E
6 I$ E7 a! s: E5 C) b第11章 课程总结【结束,沉淀】. d' [2 ?0 q2 o
对课程进行总结. E# @% g/ N* P7 F
11-1 问题与思考5 X" ?0 P4 n% b+ J6 I; p' h/ {
11-2 课程总结
4 @2 I9 |5 v+ q) R2 Y( e6 h" `* u4 n! H1 a/ w- n, D
〖下载地址〗! ~$ b1 b. w8 k7 `
游客,如果您要查看本帖隐藏内容请回复

  F: l. c3 K  E* A9 m9 B# j8 ], X
' n+ H, q! g  K: C! q
回复

使用道具 举报

admin123 | 2019-6-27 09:21:59 | 显示全部楼层
gogogogogo
回复

使用道具 举报

junjun2712 | 2019-6-28 19:19:34 | 显示全部楼层
hao dong xi !!!!!
回复

使用道具 举报

test20190703 | 2019-7-3 09:35:54 | 显示全部楼层
回复

使用道具 举报

萌码象 | 2019-7-3 10:19:29 | 显示全部楼层
强烈支持楼主ing……
回复

使用道具 举报

pehut | 2019-7-5 01:33:50 | 显示全部楼层
你这个是可以在线看的吗
回复

使用道具 举报

6523440@qq.com | 2019-7-5 10:34:38 | 显示全部楼层
强烈支持楼主ing……
回复

使用道具 举报

fengzi | 2019-7-6 00:04:31 | 显示全部楼层
pehut 发表于 2019-7-5 01:33! c0 S8 f, a6 @( ]' u
你这个是可以在线看的吗

( d: c1 \! f: a9 Z* {" K可以的  Y  W5 h0 q# \4 k: S9 b
回复

使用道具 举报

guoke0826 | 2019-7-12 12:30:07 | 显示全部楼层
强烈支持楼主ing……
回复

使用道具 举报

xxz | 2019-7-13 08:30:27 来自手机 | 显示全部楼层
支持
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则