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

  [复制链接]
查看8277 | 回复74 | 2019-6-26 23:57:42 | 显示全部楼层 |阅读模式
QQ截图20191010124522.jpg 1 P) X- S+ q% ~8 t
〖课程介绍〗
# s0 v, A+ Y- s, m4 p( K: x抽奖系统属于典型的高并发和高性能的系统,同时,业务需求复杂多变,对系统的灵活性和稳定性要求同样非常高。本课程先为大家剖析多种抽奖活动的共性和特性,再设计和开发抽奖大转盘系统的后台和接口。从基本功能的开发到使用redis步步优化,以及后续的策略对比,通过压力测试,让小伙伴直观的了解不同的设置导致的的性能差异,探究性能影响的关键因素。通过这门课程的学习,可以对系统的性能、并发、灵活、可靠等方面有更多的理解和掌握,迅速提升,达到中高级工程师的水平
% ~7 _& x7 Z3 n" u  S  Q/ q/ d" K
〖课程目录〗
0 z* [; a4 h$ }第1章 课程介绍【预备,初识】
+ j6 Q9 ]. t! ]. J/ j- T9 t0 G课程内容的整体介绍以及学习建议。0 P+ m9 n( I2 R5 x. l, h
1-1 Go抽奖系统导学 试看$ A7 e& K8 r+ z( b& V) ~! s. Y
; ]  ^8 `- ?! V% d7 ]
第2章 6种抽奖活动来一遍【伸展运动,舒缓热身】2 ^( B& l( }7 L7 w8 C# |+ G% K
看书不如动手,本章将从年会抽奖、彩票刮奖、微信摇一摇、支付宝集福卡、微信抢红包、抽奖大转盘6种抽奖活动的实现出发,让小伙伴切身的体验下如何实现不同的抽奖活动,这些活动实现的差异和难点在哪,并示范用多种方法(互斥锁、atomic、sync.Map等等)解决并发安全问题。...
  M+ ?7 j& ^  ^) x* u2-1 年会抽奖_实现分析
1 B; b; z" K3 q# n- D7 f6 U: C) e2-2 年会抽奖基本功能实现. o% Z6 I8 q* |: u
2-3 编写web单元测试和并发安全问题
: i% C/ |( h. Z: h( w2-4 用互斥锁解决并发安全问题
% Q1 P* @0 m# {  L( v7 L+ |& k9 f9 ?2-5 彩票_实现分析' k* W6 K& ~7 U8 P" F
2-6 刮刮乐和双色球 试看( N) c$ I5 v* b  G: w. M9 F
2-7 微信摇一摇_实现分析( v4 g2 c1 o, r5 F+ d: z, Z
2-8 微信摇一摇实现(上)7 Z: {! A1 n! ]+ ^, c/ t
2-9 微信摇一摇实现(下)4 K: C. a! h7 v  ^& R! ?
2-10 bug修复和压测
1 i( R7 g/ }% d  {$ b! @2-11 支付宝集福卡_实现分析/ P' r, Q' a! O5 k
2-12 支付宝集福卡实现
( f, _3 z( L) a+ n- ^5 z( t2-13 微博抢红包_实现分析
0 G# ]. E; z& P( J; J( L2-14 实现发红包: A. P* w8 |! [5 t: Q0 C3 B
2-15 实现抢红包; }, ~6 Q3 u( z8 A  y2 E
2-16 均衡问题和sync.Map解决异常: P* k& l7 `$ {' N
2-17 改用chan的方式解决并发安全问题* s( L: v9 Z" \! y" {1 ?
2-18 再次压测验证和优化改造
$ x% Y( L: O+ j9 t4 w2-19 抽奖大转盘_实现分析
/ a9 b1 M) M# ?. A( n2-20 抽奖大转盘初步实现
2 ~; U- r2 c' l) a+ r5 S( `# v2-21 sync.Mutex和atomic改造性能对比
2 X, j& z! @. u! b, \: l. F; x2-22 六种抽奖活动总结5 p4 U5 V. x- B* X6 E* f; J; T
2-23 并发编程与锁的底层原理
0 Q: X1 x' Y; H( y: g7 g7 M2 R- v2-24 高并发和高性能系统中锁的影响与解决办法) _  B8 i# t- b$ p  U; y
2-25 阶段任务
2 V8 n2 ~; q8 d3 X0 _* }2 k
/ d% R7 b2 N0 Z' K$ f: _6 l第3章 系统设计和架构设计【扩胸运动,有容乃大】
3 N$ A0 T. q8 j; E0 ~- }2 j本章对抽奖系统和架构进行详细的设计。总结前面的开发经验,从需求分析开始入手,整理需求,提炼功能,分析完善用户操作和业务流程、数据库设计、缓存设计要点。
/ [+ h7 n) s  k3-1 需求整理和提炼
# ^7 C  p) Y3 W4 ~- C- Z3-2 用户操作和业务流程* `% H0 S( C" p/ }2 r% d0 _
3-3 数据库设计
$ H" j+ q* Y3 U4 _7 ^" Q& ?3-4 缓存设计 试看
4 E5 i  S2 I, `) m  ^1 n  b3-5 系统架构设计
; J9 n. `/ v8 @) O$ I2 O3-6 系统设计和架构设计总结( A/ g% r: [4 j; p" @7 O* B
3-7 高性能程序设计,缓存为王
. }5 E6 ]! K8 H; T3-8 系统架构升级之道,关注关键服务依赖
3 A  W* j$ i8 P( l0 J. L/ P, l3-9 阶段任务$ H2 R1 f0 p: ]1 @

6 S3 B# {8 G9 a2 t6 ?第4章 项目框架与核心代码【踢腿运动,固若磐石】  r2 e1 c9 W; |* W* E, a3 q
本章开始动手使用iris+xorm先把项目框架搭建起来,并且把基础的核心代码(dao,services,comm,用户登录、退出等)完成,为后续的功能开发做基础的准备。: [4 }) y0 v0 V% Y" }& G& s1 f
4-1 项目框架搭建/ U; ^5 q; p2 @) [
4-2 数据模型的生成
4 i) M5 U4 L" @9 ], q' `, [4-3 核心的dao和service类6 c/ M  j/ v$ E& {7 W
4-4 定义dao
4 E' N  w- L1 w- y/ p/ b4-5 定义service
  W9 Y( }  {1 R' j  q+ Q6 u4-6 定义数据库和redis配置信息
) C8 N; R: r# W8 @. q& Q9 X" J2 D4-7 创建数据库实例及其要点
% o8 [; o& B8 O" U. Z4 [+ B4-8 创建redis实例及其要点, _: @0 j3 j2 l* U0 d
4-9 利用iris建立web站点) ]4 D2 M; J. }( }8 p# v& u
4-10 项目配置和通用方法3 K4 \1 w4 n1 b; s7 O3 W- c
4-11 web站点初始化构建; ]$ t- A$ ^- V8 y& R8 y2 h+ ]0 i
4-12 实现IndexController
' W: `/ R' R$ ?4 S3 u& h4-13 完善路由和main.go文件
" ~9 O; h0 v( D& B4-14 登录和退出:安全值校验和防篡改
- ~- P9 J0 H; y& D9 O: f3 x" V! g$ P3 b
第5章 后台功能开发【体侧运动,运筹帷幄】( j+ f: L4 v9 l3 T; v! X, T
一个可视化的管理后台可以更好的帮助产品运营来自助操作,本章将实现相关功能并完成抽奖活动的定制规则设置。
: P7 ^  `* N5 T! u) r5-1 后台功能开发介绍: [4 G% C4 K7 y* N
5-2 页面模板和AdminController; ?8 D! ]# n8 x$ u8 {
5-3 奖品管理实现(上)/ J, g+ |2 D5 b! H( H0 l' J0 ]. X' l
5-4 奖品管理实现(中)
. g: q. ?) N5 F5 z1 [# L2 h5-5 奖品管理实现(下). l+ V0 u, r0 `
5-6 优惠券管理实现(上)# C$ h1 q$ T8 m1 N& Q
5-7 优惠券管理实现(下)& k$ [5 q" V) n3 \$ M2 ]
5-8 中奖记录管理
; l% ]# ]- J8 M: F5 J3 ?5-9 用户管理0 H, |) e$ V( b% A! [8 {6 ]& ?2 ]) q
5-10 IP黑名单管理
+ S6 g. \3 i) i) _  f: [: V4 c& V
3 E) E5 @' _% ]2 w, j$ I第6章 基于mysql的抽奖功能开发【体转运动,基础版本】- [" ?9 ?% F7 p5 K
本章将先完成后端抽奖接口的实现,完成抽奖业务逻辑和数据流程的开发。$ B" y7 I, Q8 h' I2 P
6-1 抽奖接口开发细节分析4 y& H9 l7 W: Y
6-2 用户并发操作的锁1 p- s- u# _8 b! W
6-3 验证用户、IP今日参与次数(上)4 t5 q  ~* F9 n' O
6-4 验证用户、IP今日参与次数(下)! P  c' z+ w. K2 _5 W1 M: n
6-5 用户、IP黑名单的处理
5 R. }+ \2 x! d# n7 R! r1 Z6-6 抽奖的实现
6 v( n' _( h5 Q  E7 M( b" K8 R6 c6-7 发奖的实现# A1 A3 N% i/ s2 z+ ~# b
6-8 中奖记录和返回结果) N; ^3 W2 [+ n! G

0 ^. `4 K5 f1 s* s& h1 [4 x第7章 使用redis缓存优化【全身运动,升级版本】
! S# i9 w8 \/ t! u( o2 @% t% _本章引入redis来优化整个系统,减轻对mysql的依赖,提高抽奖接口的性能。, n" u8 q1 D- ~0 ?3 z0 O2 u
7-1 分析_奖品数据全量缓存* O! }+ O; @! z% A- O6 \: \: n
7-2 实现_奖品数据全量缓存(上)% k! }# G4 E. F0 ], {2 a' V* `
7-3 实现_奖品数据全量缓存(下); W6 D5 ]5 {0 G2 ?" p
7-4 分析_单个用户数据部分缓存( u% ^9 a7 q1 S  `
7-5 实现_单个用户数据部分缓存, |1 [+ ^1 t6 |  N0 Q$ x+ o- d" b  [
7-6 分析_IP黑名单数据缓存
4 y8 @$ {, D3 W/ p( E* d7-7 实现_IP黑名单数据缓存
; U4 r3 ^5 t7 S: j1 E; f7 s/ c7-8 优化IP今日抽奖次数
# m% A. t' r; R" O8 H7-9 优化用户今日抽奖次数" X. m+ h0 b; N. Y' q: U8 Z3 Y
7-10 用户今日抽奖次数(上)
5 y. S3 i& o/ _3 J, u7-11 用户今日抽奖次数(下)
7 Z: f& r% z, {9 X7-12 为什么使用奖品池
& z) P; D8 h' h# Q1 Y9 y1 l; K2 A7-13 初步使用奖品池6 a6 q' x0 K! k: Q; P  Q
7-14 分析_优惠券的全量缓存3 u: Q' \& @8 l, L
7-15 实现_优惠券的全量缓存(上)
! u* C$ ]$ D, I; u7 C: v7-16 实现_优惠券的全量缓存(下)
4 I0 ^" q' l/ p5 ~# m7-17 使用redis优化总结
  @* N& T1 t( k- y" K3 U+ ^& L2 p: O
第8章 奖品池以及发奖计划的实现【跳跃运动,极致版本】
$ Q2 a! P, D: W/ v本章实现两个基础服务功能(更新发奖计划,自动填充资源池),来完成奖品的发奖计划数据维护,保证可以合理的把奖品填充到奖品池中。  s" w& E' Y% v& l
8-1 发奖计划设计分析6 c1 \( v' Y0 M9 s( U
8-2 实现发奖计划(上)* ]8 E" s; W& ~+ b5 ~7 i2 k& E
8-3 实现发奖计划(中)
3 r- {1 T5 E" {' V$ c; ~7 I' g0 y8-4 实现发奖计划(下)
) `& F+ {6 B. C9 y8 Q$ a8-5 自动填充奖品池分析- n  c) X+ }! A
8-6 实现奖品池(上)
  W1 U* s( h2 c8-7 实现奖品池(下)8 x8 t& K* I' u7 t( m$ R
8-8 总结发奖计划和奖品池
. o) e2 P8 K  Y! ?8 N
0 |5 J- o6 v: }) v第9章 完整性演示以及更多总结【整理运动,整体交付】& G+ |. R7 O: O1 W; E5 G
实现前端页面的大转盘效果,完整的演示最终的效果。通过不同的设置以及测试方法,利用压力测试工具对系统性能进行分析,深入了解业务逻辑以及技术实现的细节,对系统性能的影响,明白时间消耗的关键点。而更多的思考和总结,让抽奖类活动的有更多玩法。 ...
8 Q1 C# O8 Q6 l- m/ d/ `* f9-1 前端大转盘分析
9 L2 w$ T+ f8 a2 m9 C% q4 K9-2 前端大转盘效果实现
# d( {/ B8 D4 b/ H: D& V3 c9-3 优化奖品设置分析
6 N% {8 X& U3 ]" a4 z9-4 优化发放奖品分析
" v* D* k4 F: S2 r- J9-5 再来一次压力测试吧
2 G; X( Q4 }5 _( W5 z9-6 压力测试; ~: i. j" K4 _' _5 W" P$ ?
9-7 更多运营策略+ K! @, f, S% i, F

* L' \! C- u$ C/ k: U3 ^2 M第10章 引入thrift框架【附加运动,扩展服务】
$ u5 R& `$ l- V: J通过rpc框架,将抽奖系统服务化,可以更加灵活和简单的接入到更多的业务系统中。
* ?* [8 K  X: U7 k10-1 了解thrift
  C, E$ N' m6 z# u7 F10-2 定义thrift文件
8 L1 C3 N* x2 w; J$ \  V10-3 生成代码
6 ]" W% W1 J3 d3 o  _2 w10-4 服务端接口(上)
6 p  F# W4 T% d$ i! z" h% e10-5 服务端接口(中)
! G3 h; u* x* t) A! J" T10-6 服务端接口(下)
/ p1 }4 c0 k/ P+ E" A0 D* M& j10-7 客户端接口
8 \' q9 ]# ]! @5 _5 }, |; Q10-8 总结! Q5 P1 E% b4 o
# f, F! \$ t' F3 t9 |
第11章 课程总结【结束,沉淀】
8 ]- q8 S; M7 ^' M) r对课程进行总结8 m1 H" d5 ?9 j. b4 U4 g4 N7 a, c$ C
11-1 问题与思考! I9 z" P4 o! Q9 L, X
11-2 课程总结
' y7 }( ~1 A  h  m, u) ~+ r
. W4 ?2 I) a' U: W& S5 W〖下载地址〗; X) k: U& g3 L* D; j7 z4 b$ ]
游客,如果您要查看本帖隐藏内容请回复

4 e, O4 V! y% S% h' \, N- s# C" t
& V1 P  X3 f0 X' l% }+ q; x) C2 ~: E' L1 x% S( i$ h- k
回复

使用道具 举报

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
: F3 S$ b4 c  S' O; B0 U. c$ h你这个是可以在线看的吗

4 I+ [9 U7 {% v% N& C9 `可以的2 V9 U. b+ s0 W6 b9 E' U
回复

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则