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

  [复制链接]
查看8370 | 回复74 | 2019-6-26 23:57:42 | 显示全部楼层 |阅读模式
QQ截图20191010124522.jpg
# B1 a0 O2 u6 S" e$ K8 i+ ^1 {〖课程介绍〗
7 a9 ?+ O$ V1 b1 C! @. [# U. q: D/ ~0 ?抽奖系统属于典型的高并发和高性能的系统,同时,业务需求复杂多变,对系统的灵活性和稳定性要求同样非常高。本课程先为大家剖析多种抽奖活动的共性和特性,再设计和开发抽奖大转盘系统的后台和接口。从基本功能的开发到使用redis步步优化,以及后续的策略对比,通过压力测试,让小伙伴直观的了解不同的设置导致的的性能差异,探究性能影响的关键因素。通过这门课程的学习,可以对系统的性能、并发、灵活、可靠等方面有更多的理解和掌握,迅速提升,达到中高级工程师的水平* ~# ]" \& K3 m0 Y( S+ ~
  p+ P- G% S& ?( T  ]/ A/ j! y! z  x
〖课程目录〗
. ^' p4 Q) y) W9 x9 J$ D2 P; q& I第1章 课程介绍【预备,初识】+ e' M8 ?# a5 D) g
课程内容的整体介绍以及学习建议。5 [) k/ J. o8 n
1-1 Go抽奖系统导学 试看
- H/ j' b4 @/ c  G: s, U/ V5 [
3 _& w4 h$ l  m. `第2章 6种抽奖活动来一遍【伸展运动,舒缓热身】. h* f/ M4 s& h5 v4 b" Y
看书不如动手,本章将从年会抽奖、彩票刮奖、微信摇一摇、支付宝集福卡、微信抢红包、抽奖大转盘6种抽奖活动的实现出发,让小伙伴切身的体验下如何实现不同的抽奖活动,这些活动实现的差异和难点在哪,并示范用多种方法(互斥锁、atomic、sync.Map等等)解决并发安全问题。...! E6 `: C8 i- h3 m9 n% I9 i
2-1 年会抽奖_实现分析3 \1 i/ f4 @# S
2-2 年会抽奖基本功能实现
, ^1 ~. _; D" A  P) ?2-3 编写web单元测试和并发安全问题
5 d3 @5 \* V* E% N; s2-4 用互斥锁解决并发安全问题+ G: O, z' {2 H4 b. M# @
2-5 彩票_实现分析0 z# L% B6 R6 S. U: g) p
2-6 刮刮乐和双色球 试看
* n  R( n2 |! X: V2-7 微信摇一摇_实现分析# y, g" m2 x7 h
2-8 微信摇一摇实现(上)
! J% u4 ]& g; b5 a! p# d# W1 Q2-9 微信摇一摇实现(下)% Z$ m8 L" b3 P8 F
2-10 bug修复和压测
7 M$ H: u" v, D2-11 支付宝集福卡_实现分析
# e/ k+ ^' r' a8 {2-12 支付宝集福卡实现# O# ?5 k" K. ^; g& p9 Q
2-13 微博抢红包_实现分析
8 w% |9 m1 X. s& A$ m2-14 实现发红包
' b+ ^) ~+ O  V3 E# H1 `2-15 实现抢红包
* V" s4 |2 }; F/ H2-16 均衡问题和sync.Map解决异常
% r- ?7 p9 [% d4 O5 |4 Q2-17 改用chan的方式解决并发安全问题
: H( t6 P4 {$ M; [+ O7 E- o2-18 再次压测验证和优化改造" a9 ~, r% w2 }
2-19 抽奖大转盘_实现分析
) ]9 N0 I; E6 H, {2-20 抽奖大转盘初步实现
& G' I( Y3 u  V) w& q) \8 d2-21 sync.Mutex和atomic改造性能对比
4 H3 [! Z2 R1 @: }8 o8 k2-22 六种抽奖活动总结8 c9 h$ R1 f3 l& E8 ^
2-23 并发编程与锁的底层原理
0 m; n" z3 r5 }2-24 高并发和高性能系统中锁的影响与解决办法
: V4 B4 R9 }1 J: f: e# _2-25 阶段任务9 Q- p+ q9 l- \9 y, s
% W9 V5 y8 R4 d- i; s$ j8 x
第3章 系统设计和架构设计【扩胸运动,有容乃大】
$ N5 y7 c( i7 l$ G$ q本章对抽奖系统和架构进行详细的设计。总结前面的开发经验,从需求分析开始入手,整理需求,提炼功能,分析完善用户操作和业务流程、数据库设计、缓存设计要点。- o' k' a) S3 s2 i
3-1 需求整理和提炼/ ?. A! D0 {2 o' r# [
3-2 用户操作和业务流程
) E' ~# h3 H, E- G5 r, Y3-3 数据库设计# d$ r' O! B6 Z+ D! ?6 U; @
3-4 缓存设计 试看
7 F: Y# o1 f$ C$ \0 F+ B3-5 系统架构设计: S( p0 D$ j  `9 `2 m
3-6 系统设计和架构设计总结) ?4 H8 f, A7 K" U4 c' F
3-7 高性能程序设计,缓存为王
  b; A. b, q% y) i3-8 系统架构升级之道,关注关键服务依赖
! x& i1 C( `( }8 P  y/ a5 [* v3-9 阶段任务8 z5 V+ C' Z' B
; I7 B! O4 O9 ^7 e- g
第4章 项目框架与核心代码【踢腿运动,固若磐石】9 C$ \% a" u6 @0 ~& o
本章开始动手使用iris+xorm先把项目框架搭建起来,并且把基础的核心代码(dao,services,comm,用户登录、退出等)完成,为后续的功能开发做基础的准备。/ \# ?4 X- D8 ^2 i  x3 \$ e
4-1 项目框架搭建% q3 V0 }+ J5 L2 G+ R: L# L
4-2 数据模型的生成% ^* Y3 `1 U1 d! B8 \4 d
4-3 核心的dao和service类3 s) X1 Z9 t/ V' I( A
4-4 定义dao4 H( Q5 @9 Q& F. \
4-5 定义service6 |0 x1 ^) [* y5 ], d, G
4-6 定义数据库和redis配置信息  Z2 h$ o  v) B( |! O& K
4-7 创建数据库实例及其要点
& ^# ]7 r$ \1 m+ s4-8 创建redis实例及其要点
- U3 y4 \9 e( m9 J4-9 利用iris建立web站点
. G! n% j$ ~. Z  S6 F4-10 项目配置和通用方法1 H2 i! T& j5 T3 }; B
4-11 web站点初始化构建. l3 k2 d, B3 V* D
4-12 实现IndexController+ R+ k" R7 L% U
4-13 完善路由和main.go文件% h3 X- h; X4 P# H
4-14 登录和退出:安全值校验和防篡改
; L, Z! k8 v3 ^9 S8 R
$ g! b5 a+ T7 N: T+ m第5章 后台功能开发【体侧运动,运筹帷幄】7 @, l6 u- v6 V$ c
一个可视化的管理后台可以更好的帮助产品运营来自助操作,本章将实现相关功能并完成抽奖活动的定制规则设置。" @: D9 X( b& _1 J& B
5-1 后台功能开发介绍, d1 M& W! @# q1 i; P$ \4 J
5-2 页面模板和AdminController8 V) g1 e3 w) _  w& E  c
5-3 奖品管理实现(上)9 W  k. d6 q2 D4 E
5-4 奖品管理实现(中)& k# U; w& o  y0 p  ?9 {
5-5 奖品管理实现(下)
  ?% F, N5 G" }& b5-6 优惠券管理实现(上)* B) {9 a. |8 W  X
5-7 优惠券管理实现(下)
; K, K* a  D  c) M: P5-8 中奖记录管理3 _2 m+ p' w- B+ {, A! V  Z" T
5-9 用户管理6 _" z+ s* k6 ^3 }. E0 Z7 U) {
5-10 IP黑名单管理
$ N0 A/ z  X- B' n1 W. w: K6 k7 w  x' f. p" ]$ X# y* m& @& E
第6章 基于mysql的抽奖功能开发【体转运动,基础版本】0 d5 ^$ U3 U2 R* p2 t
本章将先完成后端抽奖接口的实现,完成抽奖业务逻辑和数据流程的开发。- z% u! d. G3 W5 j+ i  J! n) D; a
6-1 抽奖接口开发细节分析5 ^, E7 Z6 d% Z1 O; x2 w! n* G
6-2 用户并发操作的锁* f! ]0 h/ ]. j* v5 ~
6-3 验证用户、IP今日参与次数(上)
1 {; t) }, y* ]7 ~3 |. e6-4 验证用户、IP今日参与次数(下)2 B" y9 E% K% W2 _* G5 A9 Y
6-5 用户、IP黑名单的处理, B$ Q2 b4 \' l8 `/ D+ [9 h
6-6 抽奖的实现0 O: J. ~7 w& Q  q9 X. U  W5 m3 e5 H
6-7 发奖的实现5 N) X+ W' k* X- j. P, m( B& p
6-8 中奖记录和返回结果1 m3 ]) O* W( K( K6 K+ U9 P1 h; _4 k

" u7 o  {$ X! d  ?& K+ |+ k  Y第7章 使用redis缓存优化【全身运动,升级版本】
# T4 ]2 e1 U' u5 _9 \! q3 S3 }2 f本章引入redis来优化整个系统,减轻对mysql的依赖,提高抽奖接口的性能。: u$ v6 G7 C" P0 q
7-1 分析_奖品数据全量缓存
  f! q7 z0 E/ u8 _7 N7-2 实现_奖品数据全量缓存(上)9 x5 a3 m) V# I& s6 q/ B. [  q
7-3 实现_奖品数据全量缓存(下)* A4 U' R3 D+ Y0 h7 I0 F
7-4 分析_单个用户数据部分缓存
4 j3 R- a3 E" {* p7-5 实现_单个用户数据部分缓存9 ]- p' X/ S6 r' N- ~; m) R3 F6 @& E
7-6 分析_IP黑名单数据缓存
: f7 d7 O9 U- H9 i7 c8 N7-7 实现_IP黑名单数据缓存
/ ]9 r6 Y7 y8 T! W% f$ a1 T7-8 优化IP今日抽奖次数& j7 w5 ]. E- s
7-9 优化用户今日抽奖次数2 l; [/ d* v6 N- i
7-10 用户今日抽奖次数(上)
  O* E0 b- Q8 c& P" j7-11 用户今日抽奖次数(下)
) J+ {% ~' C0 c7-12 为什么使用奖品池" Q6 A, j2 t" k( E2 v
7-13 初步使用奖品池
8 U& r" }2 U' T# u" U8 K" ^4 ]9 |7 K7-14 分析_优惠券的全量缓存
* x; y$ a. F' ]1 F: @7-15 实现_优惠券的全量缓存(上)
8 b0 n' H# v2 A4 \7-16 实现_优惠券的全量缓存(下)+ t  u8 @2 W8 s3 y3 o3 A2 |( m
7-17 使用redis优化总结- f: @0 z: Q! u) P. k

4 ]0 R$ ]; o  B; y* n& m第8章 奖品池以及发奖计划的实现【跳跃运动,极致版本】  p+ d) X8 e; _
本章实现两个基础服务功能(更新发奖计划,自动填充资源池),来完成奖品的发奖计划数据维护,保证可以合理的把奖品填充到奖品池中。3 E6 C* @) Q( }
8-1 发奖计划设计分析
3 z# C2 h6 P8 l+ A' g* r8-2 实现发奖计划(上)
6 S9 i% ?  g$ `3 w% l* V8-3 实现发奖计划(中)
' p$ x  S5 Y* H/ N8-4 实现发奖计划(下)
# o6 s) g- I* A6 ]2 Z8-5 自动填充奖品池分析; ]: P5 e8 ]4 L2 t/ E3 P
8-6 实现奖品池(上)
% m# e9 K3 q+ O2 f. T$ H8-7 实现奖品池(下)
& O' D4 L+ e* M* w' }. _8 p$ [8-8 总结发奖计划和奖品池+ L* w) W& e3 s1 j$ v$ m, \8 ]
+ {+ Y+ B3 a' d# s$ d
第9章 完整性演示以及更多总结【整理运动,整体交付】
0 `. j$ F; z# |, F# H6 r6 B: M2 X5 }实现前端页面的大转盘效果,完整的演示最终的效果。通过不同的设置以及测试方法,利用压力测试工具对系统性能进行分析,深入了解业务逻辑以及技术实现的细节,对系统性能的影响,明白时间消耗的关键点。而更多的思考和总结,让抽奖类活动的有更多玩法。 ...
! h0 z! B0 X+ e/ |! F9-1 前端大转盘分析
7 c4 X- y" U* w6 @' l9-2 前端大转盘效果实现
. K9 I* {# k" y) I+ L' y9-3 优化奖品设置分析: @4 y2 G9 [& U1 M. X% _: U
9-4 优化发放奖品分析
1 w2 F! x8 _, M/ ]; Z! K9-5 再来一次压力测试吧
& z' u" R; w9 P2 p9-6 压力测试
! H4 k4 N  M; J# k9-7 更多运营策略) d7 M6 g! |% M2 Z; N$ R

/ B: A; a  a+ ]  r" }5 H0 e5 Z" v, m6 c第10章 引入thrift框架【附加运动,扩展服务】6 q8 K5 v6 _$ n5 w; Y9 P7 ^2 o# ?
通过rpc框架,将抽奖系统服务化,可以更加灵活和简单的接入到更多的业务系统中。
8 d" j" L5 P. \" H10-1 了解thrift
+ P3 }. V& R; c+ ]10-2 定义thrift文件
4 [+ [& y3 `4 l9 s$ e10-3 生成代码+ E: ?: n' d% W
10-4 服务端接口(上)* _5 j7 [1 V+ a% f
10-5 服务端接口(中); X" M4 b: N" X1 g# F! [. ^
10-6 服务端接口(下)
  ?' I2 F9 H' @! `" Q* a10-7 客户端接口
5 J# L; S5 X4 q, S/ G10-8 总结
) E7 [4 Z6 f. a7 D+ h
) ~; d- @1 n% j第11章 课程总结【结束,沉淀】
+ W4 |# V6 i6 Z+ @对课程进行总结
/ M1 P! b2 Q) z2 H% U5 K! k) f: \/ V% ]11-1 问题与思考
( i' R( }" |4 P5 P& G  i11-2 课程总结
9 M8 j5 R" D9 |) J" @3 \
0 H  r3 n! n2 W0 Z〖下载地址〗
, n& k& _- e+ w3 k( K8 g
游客,如果您要查看本帖隐藏内容请回复
$ v6 g# W4 x! t1 v: P: q& k+ I0 V

- Z9 b. _# h* r3 w  Z$ m6 N2 l( D- q% e- H; I
回复

使用道具 举报

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* W" ?: u1 j1 h, I$ V
你这个是可以在线看的吗
, V/ p* M9 a8 Z* N, ?. m3 c2 E
可以的2 Z; C2 k: I  `9 n! M* I+ V4 j& ^
回复

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则