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

  [复制链接]
查看18299 | 回复74 | 2019-6-26 23:57:42 | 显示全部楼层 |阅读模式
QQ截图20191010124522.jpg 6 |' c0 A8 e, W% b' a' ?4 e
〖课程介绍〗
3 ?4 T( }: t9 R: y) d抽奖系统属于典型的高并发和高性能的系统,同时,业务需求复杂多变,对系统的灵活性和稳定性要求同样非常高。本课程先为大家剖析多种抽奖活动的共性和特性,再设计和开发抽奖大转盘系统的后台和接口。从基本功能的开发到使用redis步步优化,以及后续的策略对比,通过压力测试,让小伙伴直观的了解不同的设置导致的的性能差异,探究性能影响的关键因素。通过这门课程的学习,可以对系统的性能、并发、灵活、可靠等方面有更多的理解和掌握,迅速提升,达到中高级工程师的水平
. q8 |5 n* Q3 b
# O, I$ w) @( n" X# Y( v& M! ^〖课程目录〗
9 H% r% ~+ v# N. \. T5 G/ A7 g: {7 h第1章 课程介绍【预备,初识】
9 w/ w/ A) x% y: z课程内容的整体介绍以及学习建议。
! P: J1 a7 b) l- |# s1-1 Go抽奖系统导学 试看7 x9 V: N, U( ^  V
0 d5 g" Z: }9 q7 v; G
第2章 6种抽奖活动来一遍【伸展运动,舒缓热身】7 I/ [5 ?  d" z) G( W7 u
看书不如动手,本章将从年会抽奖、彩票刮奖、微信摇一摇、支付宝集福卡、微信抢红包、抽奖大转盘6种抽奖活动的实现出发,让小伙伴切身的体验下如何实现不同的抽奖活动,这些活动实现的差异和难点在哪,并示范用多种方法(互斥锁、atomic、sync.Map等等)解决并发安全问题。...! n  e; ^# e; I1 W) q+ r: z4 B
2-1 年会抽奖_实现分析/ B2 B  b) z/ i2 z
2-2 年会抽奖基本功能实现! b& C8 ]. o* i2 l
2-3 编写web单元测试和并发安全问题
) `2 d$ _: L; P% w2-4 用互斥锁解决并发安全问题0 h9 g3 h0 ?+ T) _
2-5 彩票_实现分析! x4 G# \  u8 j) A& R
2-6 刮刮乐和双色球 试看' b0 B8 X! S: i% `
2-7 微信摇一摇_实现分析
) U) f0 \$ q! _+ X2-8 微信摇一摇实现(上)! A% Z4 b/ g; X  q
2-9 微信摇一摇实现(下)
, L0 q# x. T3 @3 v  A2-10 bug修复和压测
* Y5 {  u" h1 D7 t& z" p2-11 支付宝集福卡_实现分析
0 r/ @' I) J2 [; v  Z  q2-12 支付宝集福卡实现6 r3 A0 l* }0 y! J4 o: D* S
2-13 微博抢红包_实现分析& Q) a, f% g# D
2-14 实现发红包% m( X& {3 L5 P
2-15 实现抢红包
" R7 e- ^! y7 @* C) y1 n. F2-16 均衡问题和sync.Map解决异常$ o) g) x6 }7 b% I, m
2-17 改用chan的方式解决并发安全问题, ]; y  b( m/ F8 T3 o5 z- E# X( P# b
2-18 再次压测验证和优化改造
( n/ [" `2 r! J9 R+ z2-19 抽奖大转盘_实现分析
% ?7 x1 a( e# g, _* s2 Z; E2-20 抽奖大转盘初步实现# o/ b6 A* `0 q2 C1 E. t5 w( k
2-21 sync.Mutex和atomic改造性能对比
2 a* z/ v! v6 F, l' g; T! B1 Y* w( ^2-22 六种抽奖活动总结
' k: s& q4 s- m2 P/ v2-23 并发编程与锁的底层原理; y3 \) e5 r9 W9 V) X2 N, Q0 K7 a
2-24 高并发和高性能系统中锁的影响与解决办法
) C2 W' T2 }3 H2-25 阶段任务
7 h: {  D- q" J: j4 k: c0 y% `! c0 f* \6 g# v" Z+ s3 E" t: D, H7 E, T
第3章 系统设计和架构设计【扩胸运动,有容乃大】
$ H+ \0 @) i3 q8 H# }8 }本章对抽奖系统和架构进行详细的设计。总结前面的开发经验,从需求分析开始入手,整理需求,提炼功能,分析完善用户操作和业务流程、数据库设计、缓存设计要点。! v& Q/ u( Z+ p9 o4 z+ |
3-1 需求整理和提炼$ P, Z3 _& @6 E+ I
3-2 用户操作和业务流程
9 R9 H+ u" y6 {3-3 数据库设计
# n  e6 ^/ b2 W7 o* k/ p3-4 缓存设计 试看& W/ [1 m& R, o
3-5 系统架构设计" \; ]* ?' I; k4 b- T( Y
3-6 系统设计和架构设计总结3 T( {7 j) q8 \4 {3 ^: ~7 y3 X; I
3-7 高性能程序设计,缓存为王; f) r( ^  D" ?1 N3 i. d
3-8 系统架构升级之道,关注关键服务依赖* |. [  b0 R3 X: Q+ o/ R
3-9 阶段任务
1 o2 L8 Y0 f6 @0 f% l) L
  ]9 r2 D5 Q( [3 Q3 Y4 B: m8 p第4章 项目框架与核心代码【踢腿运动,固若磐石】
, @. N: y" w5 T/ v( h本章开始动手使用iris+xorm先把项目框架搭建起来,并且把基础的核心代码(dao,services,comm,用户登录、退出等)完成,为后续的功能开发做基础的准备。" d: B8 H- E9 {8 I+ o% m
4-1 项目框架搭建2 h6 O5 L- L2 J( V) f7 x5 S1 D
4-2 数据模型的生成- D* \/ J  R( o3 d: Z5 V
4-3 核心的dao和service类7 l- V1 c2 T0 G! {5 o
4-4 定义dao9 S  T$ A) T) U9 M
4-5 定义service0 A; M4 r. a  Y* q2 T  r
4-6 定义数据库和redis配置信息
1 U% V, E5 e5 T4-7 创建数据库实例及其要点6 t# d' n% K# [
4-8 创建redis实例及其要点
) x1 t5 u* F# }; d4 ~* L3 {4-9 利用iris建立web站点
8 o% N( B" ^3 j# q# T4-10 项目配置和通用方法& v5 h1 _2 ?4 z) n& k" v
4-11 web站点初始化构建" m4 a1 a, n7 }
4-12 实现IndexController- v. c% f( R' q# ~$ n
4-13 完善路由和main.go文件
) a. u8 [( B! R# v+ w4-14 登录和退出:安全值校验和防篡改0 y1 T& ?4 k3 r/ A
& @' Z# s1 A! O+ _$ W9 R) P# ~
第5章 后台功能开发【体侧运动,运筹帷幄】+ d* q  q% z& e% R4 A- Q/ O+ W
一个可视化的管理后台可以更好的帮助产品运营来自助操作,本章将实现相关功能并完成抽奖活动的定制规则设置。9 q* a3 |8 B4 O/ t0 D& t% E! E
5-1 后台功能开发介绍. x1 @) V% Z# |/ N" W
5-2 页面模板和AdminController) l- r" T5 ]; i8 g! t8 P% Z
5-3 奖品管理实现(上)
' K( |  E4 |, a( a" f" f; [5-4 奖品管理实现(中)
6 B) Z7 N3 G2 X; m6 p# u5-5 奖品管理实现(下)) a% B" s+ ~$ M. ~
5-6 优惠券管理实现(上)
* T  F$ y( @; x9 G) y5-7 优惠券管理实现(下)
( f4 _4 z+ v3 C) G; }7 t5-8 中奖记录管理
8 f: a' ]5 |( M9 i. a9 Q% f5-9 用户管理! c: D4 s1 O  j/ ]0 D2 v. e& q
5-10 IP黑名单管理
% H, R3 u, `# r1 j- f, s9 a" Z7 X1 Z
第6章 基于mysql的抽奖功能开发【体转运动,基础版本】
, Z* r* S3 P( g! L! g9 I  l本章将先完成后端抽奖接口的实现,完成抽奖业务逻辑和数据流程的开发。
/ Z5 C3 l( ]+ A- w) D. k+ Q6-1 抽奖接口开发细节分析# J: c8 Q* c1 P2 |" K8 T
6-2 用户并发操作的锁/ e* e" i2 D- z
6-3 验证用户、IP今日参与次数(上)
* G- q: o4 M9 H9 f8 h# c8 Z6-4 验证用户、IP今日参与次数(下)
! K  O7 L, E1 f, ?- b6-5 用户、IP黑名单的处理
: P0 q/ V4 I" t6-6 抽奖的实现
% P: K9 a4 l  m9 `" ^6-7 发奖的实现
( }6 ]( t' F- N- |$ K& v6-8 中奖记录和返回结果
8 q: p: Q+ P, \
! Q5 Q) d+ ^5 t; e第7章 使用redis缓存优化【全身运动,升级版本】
# I4 N+ |' J$ T/ ?本章引入redis来优化整个系统,减轻对mysql的依赖,提高抽奖接口的性能。/ `$ r4 V! x! b4 }0 e5 c
7-1 分析_奖品数据全量缓存
) v. M1 j% ~2 y: D7-2 实现_奖品数据全量缓存(上)
) q+ W* N4 g+ C, W! N% G5 [+ _7-3 实现_奖品数据全量缓存(下); q" t4 t2 b) A7 e9 u/ m
7-4 分析_单个用户数据部分缓存
# y. k) ^& p  B. ^' O. L7-5 实现_单个用户数据部分缓存
; s1 l/ {0 [; \6 Z9 k3 O7-6 分析_IP黑名单数据缓存9 D$ o, x: Z# s: z! U, C
7-7 实现_IP黑名单数据缓存9 \; d2 {) D$ S/ X& D2 \
7-8 优化IP今日抽奖次数: _1 C* _: `! i; k$ w- g6 b0 C. L
7-9 优化用户今日抽奖次数
5 b7 D4 }3 G; f* S7-10 用户今日抽奖次数(上)  l2 T& L3 ~7 N( G
7-11 用户今日抽奖次数(下)
, _4 O4 R* l: W9 ]& f5 e7-12 为什么使用奖品池: g7 {# z4 M+ W
7-13 初步使用奖品池
2 a3 L( ~) E% K' @! j; j- g7-14 分析_优惠券的全量缓存/ k- _' G$ e1 b3 A7 K1 U
7-15 实现_优惠券的全量缓存(上)
$ S: U5 b2 Y" E7-16 实现_优惠券的全量缓存(下)
2 q  r1 B: g, A* h0 K7-17 使用redis优化总结5 r! h6 [1 w5 l# A; Z
; s6 z# V0 a5 B% s6 ~
第8章 奖品池以及发奖计划的实现【跳跃运动,极致版本】7 q& e' I( I! Z8 ?) z2 I
本章实现两个基础服务功能(更新发奖计划,自动填充资源池),来完成奖品的发奖计划数据维护,保证可以合理的把奖品填充到奖品池中。
: b/ i. b* D. ~' P: ?! A1 t8-1 发奖计划设计分析
+ N- T7 }) D3 i8 h' n0 V  v8-2 实现发奖计划(上)1 T/ i! |/ I0 ~
8-3 实现发奖计划(中)
$ U) Y$ A7 t( W; b2 y4 N& s8-4 实现发奖计划(下)
2 K  r8 D% U3 P* Z8-5 自动填充奖品池分析9 K' \9 \2 D# H" {* T, z8 Q5 ?
8-6 实现奖品池(上)
2 }6 v* m& @" H% q8-7 实现奖品池(下)- Z4 J9 f) u6 J$ a, `9 y: e
8-8 总结发奖计划和奖品池
5 Y- o. Q- O4 f, U; ~
9 [. t5 l; b3 M第9章 完整性演示以及更多总结【整理运动,整体交付】  W) |1 G" k3 y3 N' G8 ]" r
实现前端页面的大转盘效果,完整的演示最终的效果。通过不同的设置以及测试方法,利用压力测试工具对系统性能进行分析,深入了解业务逻辑以及技术实现的细节,对系统性能的影响,明白时间消耗的关键点。而更多的思考和总结,让抽奖类活动的有更多玩法。 ...
  ]2 `! p' @: I( u' i* N8 l+ t: ]9-1 前端大转盘分析
7 V; T, a2 B" G$ z5 W1 @9-2 前端大转盘效果实现
6 r9 |" @# N" c* w% g# n) V. a4 `' _9-3 优化奖品设置分析0 ~$ Q/ F7 _* H( q3 P
9-4 优化发放奖品分析
1 G5 M3 J  _" A4 h' [9 ]( K: _; Q9-5 再来一次压力测试吧3 R9 I1 p% _2 H9 W8 t& Z* \4 ], x
9-6 压力测试
! H3 S/ m! P6 j3 C( b$ _8 K7 W! I9-7 更多运营策略
+ j7 ^: s+ r0 i+ k- ^3 v# h, f  ~8 F7 O* D3 R7 |
第10章 引入thrift框架【附加运动,扩展服务】
0 ~+ w( A$ I+ S: k通过rpc框架,将抽奖系统服务化,可以更加灵活和简单的接入到更多的业务系统中。
5 ~! h1 z5 F" f, B10-1 了解thrift
2 p  b# O% g% H% _9 k10-2 定义thrift文件  g" L4 P7 b+ k; m& r2 w
10-3 生成代码2 @3 n  {  ^4 G, T# z
10-4 服务端接口(上)9 V: s: o8 r6 G' A4 S% l8 g
10-5 服务端接口(中)7 F' l) I( m0 d' r  \
10-6 服务端接口(下)
# q! q* F; A2 Y5 ], S$ K10-7 客户端接口& N; C7 v9 j  V& E' P% a; O' _. L
10-8 总结1 U" W/ I3 H% r) M; s) ]

. w0 r1 s, R3 l第11章 课程总结【结束,沉淀】
. s( u& m" U  [  u对课程进行总结/ B8 ~, @' G# E2 H1 L- x3 ]
11-1 问题与思考
1 y# I7 _; T0 c  p% C8 i) @11-2 课程总结4 D! ^3 {. }' d: a$ M6 S
. M+ n& c5 W& Y; v2 X
〖下载地址〗
4 g  K( ^( ~  T: B5 H
游客,如果您要查看本帖隐藏内容请回复

+ z, L# S( s+ H9 C, D7 t. H6 U0 E
2 d0 [! J# H0 T) r7 o! S
  H% w$ Z4 t; ]
回复

使用道具 举报

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:339 K& ~" R" W; L5 O; H
你这个是可以在线看的吗
$ @1 c3 b% z# e& u/ J) o! Q
可以的
, |1 h& @9 @, J" _+ {4 A1 d
回复

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则