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

  [复制链接]
查看8403 | 回复74 | 2019-6-26 23:57:42 | 显示全部楼层 |阅读模式
QQ截图20191010124522.jpg 4 B& b5 X' m( V6 J
〖课程介绍〗
! c8 v3 V: D# `5 A1 j1 F抽奖系统属于典型的高并发和高性能的系统,同时,业务需求复杂多变,对系统的灵活性和稳定性要求同样非常高。本课程先为大家剖析多种抽奖活动的共性和特性,再设计和开发抽奖大转盘系统的后台和接口。从基本功能的开发到使用redis步步优化,以及后续的策略对比,通过压力测试,让小伙伴直观的了解不同的设置导致的的性能差异,探究性能影响的关键因素。通过这门课程的学习,可以对系统的性能、并发、灵活、可靠等方面有更多的理解和掌握,迅速提升,达到中高级工程师的水平
4 n) B" ?: {# a3 Z2 U! Y# Y" ]6 `8 D; C5 C0 z8 O, T+ A# B
〖课程目录〗
* H, i- |) F( A7 H; }: T第1章 课程介绍【预备,初识】  E1 V, \- f7 V1 H
课程内容的整体介绍以及学习建议。+ J; d% Z  X1 E! h) f# B4 y- |
1-1 Go抽奖系统导学 试看. n, Y) w) N# T' U

0 \, a; k( b$ t" S9 u第2章 6种抽奖活动来一遍【伸展运动,舒缓热身】4 i! B8 u' v# e! ~# a! P
看书不如动手,本章将从年会抽奖、彩票刮奖、微信摇一摇、支付宝集福卡、微信抢红包、抽奖大转盘6种抽奖活动的实现出发,让小伙伴切身的体验下如何实现不同的抽奖活动,这些活动实现的差异和难点在哪,并示范用多种方法(互斥锁、atomic、sync.Map等等)解决并发安全问题。...# j9 X* P+ o' p: s. i" s/ Q: d- a! [, J
2-1 年会抽奖_实现分析
/ G% U8 T3 V: D' p. X' R3 Q$ P2-2 年会抽奖基本功能实现- [$ _7 I2 Y( g- ^
2-3 编写web单元测试和并发安全问题
. A4 i+ }, \; B$ a" I2-4 用互斥锁解决并发安全问题
, A2 P2 R* `  ^" ?/ I1 C2-5 彩票_实现分析1 \( `# L& T% J% L
2-6 刮刮乐和双色球 试看
* t4 U" B# m+ o& |" y6 K- V2-7 微信摇一摇_实现分析
! D: O- t4 C6 C- z8 L/ h2-8 微信摇一摇实现(上)
2 F! [* R! C7 ?9 s+ s: m5 A2-9 微信摇一摇实现(下)
1 x! F1 U) O) V( R/ ^2-10 bug修复和压测
; F# C* Q6 \4 H2-11 支付宝集福卡_实现分析
$ m) D$ T5 |- W( N4 P; V2-12 支付宝集福卡实现! j; W9 V* Q: x% `! m; k# W
2-13 微博抢红包_实现分析: v" ?5 J. `9 ?* @/ c
2-14 实现发红包
5 T* ]  ~/ d* L  p. N2-15 实现抢红包( a4 C# M4 ]7 l
2-16 均衡问题和sync.Map解决异常
( H. @) g% V' v1 V  J& j2 T* u* S- K2-17 改用chan的方式解决并发安全问题6 F' d" m7 g" ]) S
2-18 再次压测验证和优化改造6 B$ n) h! c- }6 ~9 U$ d/ b
2-19 抽奖大转盘_实现分析
! B1 i; l, N- X6 O& U' c2-20 抽奖大转盘初步实现
0 n* \7 U( K3 t) E1 J2-21 sync.Mutex和atomic改造性能对比  ~# {+ q; k3 {3 S& @& O
2-22 六种抽奖活动总结
4 @6 P) ~0 {7 d! A& e: ?1 ^2-23 并发编程与锁的底层原理/ W. l) l+ L- b+ e  ~$ L
2-24 高并发和高性能系统中锁的影响与解决办法
' a* U4 y) g, T# g0 X2-25 阶段任务: N1 W- {; l- r$ K. w2 |

4 \9 b# C. A# M) N第3章 系统设计和架构设计【扩胸运动,有容乃大】
3 h" @) ]2 h6 g本章对抽奖系统和架构进行详细的设计。总结前面的开发经验,从需求分析开始入手,整理需求,提炼功能,分析完善用户操作和业务流程、数据库设计、缓存设计要点。
$ w' P; g" T; ^. i0 H* M: W3-1 需求整理和提炼
0 M* a( R- V: i& W* p3-2 用户操作和业务流程; Y. }( q' A/ w6 e
3-3 数据库设计- m+ n3 v2 g' d% B* a
3-4 缓存设计 试看
1 m1 c8 S" Q- p% l3 J0 e3-5 系统架构设计3 f9 Q( B# h% S$ G# U/ |
3-6 系统设计和架构设计总结( h  C, B, k+ X8 ]5 @% o$ V
3-7 高性能程序设计,缓存为王! W# a" {2 z( q0 S, d7 m8 `- \# X
3-8 系统架构升级之道,关注关键服务依赖* P& |8 l4 W5 ]+ n
3-9 阶段任务
& K' {2 Q# O1 l( C' U+ T' k2 y' N7 W, E3 E; I  g4 O1 f
第4章 项目框架与核心代码【踢腿运动,固若磐石】
9 o/ ]4 `8 G) c4 g" ]本章开始动手使用iris+xorm先把项目框架搭建起来,并且把基础的核心代码(dao,services,comm,用户登录、退出等)完成,为后续的功能开发做基础的准备。
" B" t- S8 w2 {. ^# Z4-1 项目框架搭建+ J$ c1 U% w+ I" P, n9 }
4-2 数据模型的生成
. W& l( M6 A/ h9 h) H/ r' R4-3 核心的dao和service类
& w. |- W2 t( K- O1 t4-4 定义dao1 }. z- X$ a9 B( X
4-5 定义service$ d0 h- l4 }, }! N# W$ k
4-6 定义数据库和redis配置信息
1 j) X7 f3 K3 G" L' |4-7 创建数据库实例及其要点- ]# L- u4 f, R% c# C
4-8 创建redis实例及其要点8 ~/ w# V  y7 N1 w, Y
4-9 利用iris建立web站点% O2 H+ m3 O/ d  }7 S
4-10 项目配置和通用方法( I% F, _' ~6 |9 R
4-11 web站点初始化构建
+ S, V' H( p/ `9 |4-12 实现IndexController" N# j. g9 ~( z( y, m
4-13 完善路由和main.go文件
" ^; w( Y/ U7 f/ X. m, c2 W4-14 登录和退出:安全值校验和防篡改3 Q3 g+ Z# x( ]8 V8 g- x* H

) M. v. z  }$ A第5章 后台功能开发【体侧运动,运筹帷幄】8 ?. Y7 _9 W+ d) U  F4 Q' m
一个可视化的管理后台可以更好的帮助产品运营来自助操作,本章将实现相关功能并完成抽奖活动的定制规则设置。
5 E2 ~( X' j* q! r+ Y1 {5-1 后台功能开发介绍2 S) C4 L- V8 N# y" x$ @
5-2 页面模板和AdminController
. i5 e1 T# r1 b5-3 奖品管理实现(上)
4 @) g0 u+ ^( q% H9 I& i5-4 奖品管理实现(中)
3 H: K& O3 |4 K5-5 奖品管理实现(下)
& O+ F- f, q" Y1 e& ?4 |7 J5-6 优惠券管理实现(上)- A( X8 r6 D1 V; _$ r. N
5-7 优惠券管理实现(下)4 v$ P0 F# T+ F0 l, [, l7 s
5-8 中奖记录管理
& _, V0 a/ }( H, y; _5-9 用户管理
0 ]9 `8 k  Z/ E+ G0 `, e5-10 IP黑名单管理+ R$ N/ w: `( E

* M+ |- j( G+ ^8 M1 u: e% E1 o第6章 基于mysql的抽奖功能开发【体转运动,基础版本】, i) \7 V% x& N) k
本章将先完成后端抽奖接口的实现,完成抽奖业务逻辑和数据流程的开发。
  `. F- l; q' w0 X& H6-1 抽奖接口开发细节分析4 Z) N; e* q) e7 m- g+ z& O# p
6-2 用户并发操作的锁, a+ w# V3 _' A+ ]% E
6-3 验证用户、IP今日参与次数(上)/ M# ]1 ]2 t! _  {4 a  W% ?! X
6-4 验证用户、IP今日参与次数(下)
1 u. D" X. A( d; J" d$ C5 G6-5 用户、IP黑名单的处理
: E* t7 T- h) P3 H" D6-6 抽奖的实现  t& U4 ]' A8 ]' J; R
6-7 发奖的实现* }0 P& q6 v6 L9 L) n  t- o5 m# i
6-8 中奖记录和返回结果
7 q5 W$ x; ?+ N1 i
9 |" V9 P9 p! `4 ?第7章 使用redis缓存优化【全身运动,升级版本】
, J; H# u. g( o3 G' E( v本章引入redis来优化整个系统,减轻对mysql的依赖,提高抽奖接口的性能。
' B5 [5 u4 d5 U. b+ r/ T* {) m# s7-1 分析_奖品数据全量缓存
# V$ b4 v1 Z; U/ A+ k2 K9 ]; P7-2 实现_奖品数据全量缓存(上)1 E& U6 I) o6 `4 ~# Z7 F
7-3 实现_奖品数据全量缓存(下)1 i3 Q+ @( d& q, T6 `2 ~; u/ B4 x' K/ D0 L
7-4 分析_单个用户数据部分缓存
, n, p+ {' f5 h' Y  |. e3 F7-5 实现_单个用户数据部分缓存
6 A3 K# x' w( [% A7-6 分析_IP黑名单数据缓存
8 Z. ^: w1 O* W3 J+ F) W) e7-7 实现_IP黑名单数据缓存
; f9 J9 \2 [0 v0 q6 e9 E7-8 优化IP今日抽奖次数
: z) W( ^' l6 z2 e; K8 d7-9 优化用户今日抽奖次数1 ]& X3 k' O+ Q
7-10 用户今日抽奖次数(上)
) J% I, V; K  l/ N$ [! u% ^7-11 用户今日抽奖次数(下)4 T) _) q5 @, ~
7-12 为什么使用奖品池; V. i/ j4 q1 E$ |, q4 x/ R! h
7-13 初步使用奖品池# Q3 G: M8 I1 D6 I. K
7-14 分析_优惠券的全量缓存
, h: {/ d( O9 Y7-15 实现_优惠券的全量缓存(上)
9 f  e& I. U/ Y7-16 实现_优惠券的全量缓存(下)
/ w& S4 f9 u: k! u, C. I# O7 Q  p! `7-17 使用redis优化总结
( ^* \8 |7 G' A9 ^& S7 B; F4 h1 U& L+ B, u2 Y2 [! v+ o  _
第8章 奖品池以及发奖计划的实现【跳跃运动,极致版本】8 I" G( T) M2 h' K8 |' ?
本章实现两个基础服务功能(更新发奖计划,自动填充资源池),来完成奖品的发奖计划数据维护,保证可以合理的把奖品填充到奖品池中。+ N/ R$ V0 g1 y8 R" i  B
8-1 发奖计划设计分析7 F$ v8 B( `' k) @, ?3 c
8-2 实现发奖计划(上)
! }- [" R6 K+ N+ k4 |8-3 实现发奖计划(中)9 a( `  O0 s0 e, a
8-4 实现发奖计划(下)( Y: f' E! D' F/ ?
8-5 自动填充奖品池分析
4 W( J) A# U+ b& }  I7 r" F' a8-6 实现奖品池(上)2 S& U! t" ^. @/ ]5 D& _
8-7 实现奖品池(下), H' p# R7 A" x# z
8-8 总结发奖计划和奖品池1 p  [2 v7 ^+ n3 S

/ O2 t  D6 s8 T" h! F! w+ ~+ ]第9章 完整性演示以及更多总结【整理运动,整体交付】
/ W6 r: q$ J" _  T实现前端页面的大转盘效果,完整的演示最终的效果。通过不同的设置以及测试方法,利用压力测试工具对系统性能进行分析,深入了解业务逻辑以及技术实现的细节,对系统性能的影响,明白时间消耗的关键点。而更多的思考和总结,让抽奖类活动的有更多玩法。 ...1 s& \2 `/ m, W+ ~$ K
9-1 前端大转盘分析( O9 }6 S* u, T
9-2 前端大转盘效果实现
2 V7 {% {( x. I) \9 w- k0 m9-3 优化奖品设置分析: |' r* x6 o7 i& k+ J& P
9-4 优化发放奖品分析
" Y1 j  r, ?/ l9-5 再来一次压力测试吧
% {' H. r2 c# s4 M9-6 压力测试
" T! c* Q' z" |) m9-7 更多运营策略, _* _: \/ {9 {- E: i" {3 w) n. g4 h
! K- i" C8 _* C7 w; Y, ~
第10章 引入thrift框架【附加运动,扩展服务】# g5 |9 K" D- W9 x
通过rpc框架,将抽奖系统服务化,可以更加灵活和简单的接入到更多的业务系统中。$ I1 B6 F! {! V# a
10-1 了解thrift
! i: F( @" x. [% _4 ]- O  {$ \10-2 定义thrift文件
9 v# V" G& U% n( ~- I9 _10-3 生成代码
  |$ L: t* a1 u: v9 x& p3 K' r10-4 服务端接口(上)
& H" C2 v% f) M9 g% K; r  C10-5 服务端接口(中)! z7 }% h; Q: H6 _; r
10-6 服务端接口(下): n, X& x; \1 y5 j& P
10-7 客户端接口
, r! G5 T! b) B# J. n10-8 总结
8 Q# p2 [  W$ ~/ T. V$ V6 f: u% K; h8 E( S( l
第11章 课程总结【结束,沉淀】! J: K! F' l/ @
对课程进行总结
9 O$ y: z  s+ U8 G11-1 问题与思考
/ n/ T2 d9 h  e11-2 课程总结
2 ^- A( K6 D5 L, z. z& i
1 U: ?( ?; g/ k〖下载地址〗: i. Q6 l8 i9 x1 S9 J
游客,如果您要查看本帖隐藏内容请回复

5 {; c; i, E" `& Y7 [' Z( R* ^, g& _$ g" i# P
5 g$ G  h; r) H; _! c: s' I8 u
回复

使用道具 举报

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
, X  G& Y& T, d) \; @. J你这个是可以在线看的吗
' I8 b1 l' ?/ v+ s
可以的
) `! c3 Z& k# O
回复

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则