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

  [复制链接]
查看8322 | 回复74 | 2019-6-26 23:57:42 | 显示全部楼层 |阅读模式
QQ截图20191010124522.jpg / @1 P( I2 e* `$ e8 h) h
〖课程介绍〗
! b8 A# \( t' B8 U7 J0 T5 e5 d& a抽奖系统属于典型的高并发和高性能的系统,同时,业务需求复杂多变,对系统的灵活性和稳定性要求同样非常高。本课程先为大家剖析多种抽奖活动的共性和特性,再设计和开发抽奖大转盘系统的后台和接口。从基本功能的开发到使用redis步步优化,以及后续的策略对比,通过压力测试,让小伙伴直观的了解不同的设置导致的的性能差异,探究性能影响的关键因素。通过这门课程的学习,可以对系统的性能、并发、灵活、可靠等方面有更多的理解和掌握,迅速提升,达到中高级工程师的水平3 r" c( S8 Z0 e4 d* w

9 o* E) f9 h9 m〖课程目录〗
# [. b6 S) [+ N第1章 课程介绍【预备,初识】
. z7 c" a% W% t+ \% O+ G: U4 T1 ^8 r课程内容的整体介绍以及学习建议。7 X7 \, ?  `# {1 O) [
1-1 Go抽奖系统导学 试看6 G4 r! o" ]4 w

( a4 n  z- F/ g; M* R2 V第2章 6种抽奖活动来一遍【伸展运动,舒缓热身】
3 d4 p) S/ s2 Q& a. Z# J9 Q看书不如动手,本章将从年会抽奖、彩票刮奖、微信摇一摇、支付宝集福卡、微信抢红包、抽奖大转盘6种抽奖活动的实现出发,让小伙伴切身的体验下如何实现不同的抽奖活动,这些活动实现的差异和难点在哪,并示范用多种方法(互斥锁、atomic、sync.Map等等)解决并发安全问题。...
" V$ `! s% r+ B6 K% _: T' p+ O2-1 年会抽奖_实现分析
' E2 W. i' r& E3 x! Y2-2 年会抽奖基本功能实现- B3 x& M, S# W9 Y; U, G
2-3 编写web单元测试和并发安全问题
- ]. B7 n6 S' K7 g) @( J. W! n2-4 用互斥锁解决并发安全问题* H0 q) x9 }6 o2 o
2-5 彩票_实现分析
& r, i( ^4 T6 }; V$ `" B2-6 刮刮乐和双色球 试看
' i3 ~" X- l9 J$ |0 e/ z" ^2-7 微信摇一摇_实现分析
/ l7 Z) [: P( g6 Z+ z5 N  c; s2-8 微信摇一摇实现(上)2 K2 Q4 k$ k! j
2-9 微信摇一摇实现(下)
9 _: r( d7 u5 n* I2-10 bug修复和压测
: Y/ P' I1 i' `, z* R: V$ z$ m% G2-11 支付宝集福卡_实现分析
( f4 K9 z0 a" V9 ?! L0 u' M% i2-12 支付宝集福卡实现
# K4 E; @9 p6 H* q2-13 微博抢红包_实现分析3 b+ o% U; C9 b$ b  _
2-14 实现发红包
' L7 W* y: N: Y; h9 o7 U2-15 实现抢红包+ E* y/ v8 d  J) S0 f% W
2-16 均衡问题和sync.Map解决异常
- e; q9 C; ~% i3 n8 u1 p$ G2-17 改用chan的方式解决并发安全问题8 I* S& K7 l- r- J3 U+ D
2-18 再次压测验证和优化改造
9 Y: T( Y: k& h' E; Q- e2-19 抽奖大转盘_实现分析/ z- P' O9 Y0 p: j9 K
2-20 抽奖大转盘初步实现
) B/ S# c1 O  a/ I2 ?5 a# X2-21 sync.Mutex和atomic改造性能对比3 ^! |% C0 i; f  Y+ W0 G
2-22 六种抽奖活动总结6 c( u6 q: r+ y6 O" Y0 s0 a
2-23 并发编程与锁的底层原理9 v1 r: r, c: @1 y7 \& t: p
2-24 高并发和高性能系统中锁的影响与解决办法
3 D' \* N" o$ v2-25 阶段任务1 M) T$ _0 X' [8 e" Y- _& |

8 G/ v* g) Z. x" ?第3章 系统设计和架构设计【扩胸运动,有容乃大】9 l) K3 l4 Z! c$ G9 T* q
本章对抽奖系统和架构进行详细的设计。总结前面的开发经验,从需求分析开始入手,整理需求,提炼功能,分析完善用户操作和业务流程、数据库设计、缓存设计要点。6 v3 ^# X8 H3 N) W8 \4 x; N
3-1 需求整理和提炼; x) U  o5 d/ T4 y( ^0 w9 [
3-2 用户操作和业务流程
7 B; P$ h% }7 R8 F3-3 数据库设计
# ^2 a1 f' v2 M7 ^3-4 缓存设计 试看3 o+ h. Y+ o9 u; W0 A# G
3-5 系统架构设计( [+ u1 |$ f; `7 s8 N; R: k& l
3-6 系统设计和架构设计总结
- m- |1 \. S7 S3-7 高性能程序设计,缓存为王
# t( z( F* m$ x0 e# X/ L, O3-8 系统架构升级之道,关注关键服务依赖/ d, z- ]. A3 ~: k9 n4 x
3-9 阶段任务
% y: O2 u/ t, d  _5 |+ \6 Y" y+ ]8 A4 m: U: h
第4章 项目框架与核心代码【踢腿运动,固若磐石】- \$ G5 w) d1 z. p7 Y9 w9 J
本章开始动手使用iris+xorm先把项目框架搭建起来,并且把基础的核心代码(dao,services,comm,用户登录、退出等)完成,为后续的功能开发做基础的准备。& M' A, }6 C0 k: O2 _* s8 Q
4-1 项目框架搭建1 @+ k' r% C8 ~
4-2 数据模型的生成
& K0 m* S! H+ L: |& V4 C3 k4-3 核心的dao和service类
* X' P; C" l' D6 K3 z( s( h4 v4-4 定义dao
  Z1 Q) U0 x0 W: n3 |3 l4-5 定义service
1 E' w: h1 Z& o6 P, U1 T3 e6 Q  ~4-6 定义数据库和redis配置信息" Z: F( c) h0 ^8 m1 k
4-7 创建数据库实例及其要点
9 I% d/ b7 A7 z2 Y) v6 A4-8 创建redis实例及其要点! C. F4 Q$ P0 E9 X& c
4-9 利用iris建立web站点/ B/ l, Y$ h3 @4 Y' O
4-10 项目配置和通用方法
; @& |$ B3 {6 J4-11 web站点初始化构建9 Y/ L; V6 E! l/ i
4-12 实现IndexController
6 \- Q+ l4 K: S0 S0 z$ r" g, p4-13 完善路由和main.go文件
8 M9 \% i1 {3 ]4-14 登录和退出:安全值校验和防篡改
+ F% h/ a% q* T. i0 Q" W
2 }; i4 o" l2 F% p; o  Q, F, z第5章 后台功能开发【体侧运动,运筹帷幄】
; }! r! g! s8 U% T! c9 n一个可视化的管理后台可以更好的帮助产品运营来自助操作,本章将实现相关功能并完成抽奖活动的定制规则设置。( ~% q4 H- Q: \0 L+ D
5-1 后台功能开发介绍
# F2 ~, K3 J7 P: o5-2 页面模板和AdminController6 w3 Y! M8 ^8 ?% o$ z+ f4 q1 @& {
5-3 奖品管理实现(上). U& V$ j- K# z- y
5-4 奖品管理实现(中)
6 K: Q8 I- a/ p& Q+ F( r4 F! I5-5 奖品管理实现(下)% v0 ~' l, X: {9 r1 f
5-6 优惠券管理实现(上)3 ~& ^9 F/ q, ?- g. w6 C& a) s; E: i3 \
5-7 优惠券管理实现(下)
  A( o/ P/ W' ]5-8 中奖记录管理
# z8 B: {! r: j  x3 U/ M, X3 o5 ~5-9 用户管理- [) [$ y3 h7 R/ u' i' K# f
5-10 IP黑名单管理* O. ]* r9 \* V+ Y3 S+ G8 y
; {  Z2 m% c+ X' P  a# [1 t
第6章 基于mysql的抽奖功能开发【体转运动,基础版本】
% r3 T7 C& Z* A" b, l+ h本章将先完成后端抽奖接口的实现,完成抽奖业务逻辑和数据流程的开发。
* e  P' @' Y9 [7 _& h6-1 抽奖接口开发细节分析; Z# s9 s0 z% C# [: M7 h
6-2 用户并发操作的锁* E7 V/ T. b4 o4 O! {3 d$ q5 v
6-3 验证用户、IP今日参与次数(上)8 s8 }; |' p* C
6-4 验证用户、IP今日参与次数(下)
# @; K5 i0 ?! Q7 e" ~6-5 用户、IP黑名单的处理4 F( N9 u% x, v
6-6 抽奖的实现
; U* A6 x" |# ?! a/ Y6-7 发奖的实现  q$ p4 U+ a9 j' a* p. O
6-8 中奖记录和返回结果( @2 v2 c+ ^4 i1 i
! V0 l$ P3 z1 S/ m. v8 u* q
第7章 使用redis缓存优化【全身运动,升级版本】
0 z) `3 p6 I% D1 o/ {/ W0 t本章引入redis来优化整个系统,减轻对mysql的依赖,提高抽奖接口的性能。& N! ]. c1 c- _  G9 A
7-1 分析_奖品数据全量缓存' W- q  t# Z8 y+ C8 `$ q: ]
7-2 实现_奖品数据全量缓存(上)
( h( |; n# B( ^! Q) [- s7-3 实现_奖品数据全量缓存(下)
& ~+ g# C# V7 F6 _0 L9 Y" w7-4 分析_单个用户数据部分缓存* m6 N. Y' F2 z9 A
7-5 实现_单个用户数据部分缓存
& z: H2 |2 ^$ L. N* X, b+ r/ Y0 A7-6 分析_IP黑名单数据缓存& l$ I; H+ _! u+ C
7-7 实现_IP黑名单数据缓存
. ~5 s2 B' ~* I- y7-8 优化IP今日抽奖次数# t3 w6 N: o$ h4 w
7-9 优化用户今日抽奖次数' V; A" x& |8 [" S' c3 L  h
7-10 用户今日抽奖次数(上)
) T, Q9 w$ w6 _7-11 用户今日抽奖次数(下)6 f. ]1 D$ ?' [7 k
7-12 为什么使用奖品池! o: _) V; T5 u) R) s
7-13 初步使用奖品池
. M+ Y' i, T% Q4 R" m) X5 t* c7-14 分析_优惠券的全量缓存* ]8 C( H# G) Q2 Q3 j
7-15 实现_优惠券的全量缓存(上)* K* C. s" e3 Q
7-16 实现_优惠券的全量缓存(下)4 G8 [) X1 A# @2 ]6 \# I
7-17 使用redis优化总结
( D. \6 {' |. {9 E2 C" X, L0 W8 u
: L" E2 `+ M+ Z) t# B第8章 奖品池以及发奖计划的实现【跳跃运动,极致版本】7 ^9 _: O4 x5 w
本章实现两个基础服务功能(更新发奖计划,自动填充资源池),来完成奖品的发奖计划数据维护,保证可以合理的把奖品填充到奖品池中。
# [5 ?8 O5 q1 V$ n' Q( ]8-1 发奖计划设计分析
, o1 C! @) o$ }$ ]. v6 |$ t, A7 ^8-2 实现发奖计划(上)
8 |7 q. M( A) O- M, s8-3 实现发奖计划(中)
  Y* E* p" l" |8 B8-4 实现发奖计划(下)7 E/ a+ Z% p& o6 g& a) k
8-5 自动填充奖品池分析
" w6 c6 O1 M" k, u* h8-6 实现奖品池(上)3 J. c& k* B- H
8-7 实现奖品池(下)
  E7 A: |0 D9 j& Z2 ~4 [' i0 N2 T8-8 总结发奖计划和奖品池2 Y9 a5 k' r4 S7 B) g7 y

) E1 d, n* z6 a0 ~第9章 完整性演示以及更多总结【整理运动,整体交付】2 q$ c+ B7 a; T" H
实现前端页面的大转盘效果,完整的演示最终的效果。通过不同的设置以及测试方法,利用压力测试工具对系统性能进行分析,深入了解业务逻辑以及技术实现的细节,对系统性能的影响,明白时间消耗的关键点。而更多的思考和总结,让抽奖类活动的有更多玩法。 ...' t$ ?8 H1 ^0 K  I" o
9-1 前端大转盘分析
9 z" c# W2 W" p8 \! P- P% p9-2 前端大转盘效果实现
+ k1 r, s' P4 x9 l: G& `$ h9-3 优化奖品设置分析
0 M* u9 r+ c3 j9 g2 V. Z! z6 p( x# }/ U9-4 优化发放奖品分析' n+ b* n! F. o3 N$ }" P. {
9-5 再来一次压力测试吧
/ }5 t6 u! f$ v, c4 I2 f9-6 压力测试
0 j9 I; p5 F$ s  z  K9-7 更多运营策略7 _( R3 {( M  R' g" M$ r" a. j

0 ]8 E+ V# T/ o) u% ?第10章 引入thrift框架【附加运动,扩展服务】3 }1 S5 I% d. N+ ~. n* m% v
通过rpc框架,将抽奖系统服务化,可以更加灵活和简单的接入到更多的业务系统中。3 a& S/ ]- e) r, W# I
10-1 了解thrift, S7 q: R) i5 H3 P
10-2 定义thrift文件9 P! {! H1 ^/ z. n
10-3 生成代码  t8 l, O6 \/ L: G( v! r2 [# f  k
10-4 服务端接口(上)
' U  P! M6 P# Y1 Z- s10-5 服务端接口(中)9 y+ k; Y7 m% Q7 B4 t) I
10-6 服务端接口(下)( R* T* _! |2 j* n
10-7 客户端接口
) m- Q) v' Y  Q# ]$ G7 z10-8 总结# |0 V3 @- |: i. Y0 d8 a- e
' d5 ^1 [! @5 a5 e4 l6 N& b: q
第11章 课程总结【结束,沉淀】4 R/ b- h8 w- k: k$ A: J% g1 X
对课程进行总结* S( ^, G: H4 a0 _- ?$ h' u
11-1 问题与思考  U- u% R5 L$ q& D3 s. \3 K
11-2 课程总结6 v5 a8 V6 S0 t" X  V
1 D$ H) `2 a5 ~: J& a
〖下载地址〗
$ B2 R% E7 d: o& y. R0 C- }
游客,如果您要查看本帖隐藏内容请回复

! r: t% g7 `/ v- U
$ ~( q/ Q$ r0 ]$ i5 s# ?4 X' Z# S
回复

使用道具 举报

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
9 R/ y3 _5 U9 ^8 O你这个是可以在线看的吗

/ y! K) Y* _( m: }! e- P  \! h! `可以的/ O% j% A% J/ _, u7 j
回复

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则