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

  [复制链接]
查看26031 | 回复74 | 2019-6-26 23:57:42 | 显示全部楼层 |阅读模式
QQ截图20191010124522.jpg , K7 O; C; {' G# N2 c' r& [2 N
〖课程介绍〗
3 J. [: P4 S4 s; R2 U- k抽奖系统属于典型的高并发和高性能的系统,同时,业务需求复杂多变,对系统的灵活性和稳定性要求同样非常高。本课程先为大家剖析多种抽奖活动的共性和特性,再设计和开发抽奖大转盘系统的后台和接口。从基本功能的开发到使用redis步步优化,以及后续的策略对比,通过压力测试,让小伙伴直观的了解不同的设置导致的的性能差异,探究性能影响的关键因素。通过这门课程的学习,可以对系统的性能、并发、灵活、可靠等方面有更多的理解和掌握,迅速提升,达到中高级工程师的水平- `% V3 O% p$ t; k
+ V6 S6 Z% s# `! R: |. u) q
〖课程目录〗
5 v' e1 x: _- k& u# N2 n9 T第1章 课程介绍【预备,初识】2 Z& a+ t, D& R- d
课程内容的整体介绍以及学习建议。
% M4 s( z+ N; U  ^; Y5 t1-1 Go抽奖系统导学 试看. b+ O+ I( f$ z" j( \# H  T- e
, @+ b* L/ t8 |9 a. w3 a
第2章 6种抽奖活动来一遍【伸展运动,舒缓热身】
  y' g; @# O: ?1 J看书不如动手,本章将从年会抽奖、彩票刮奖、微信摇一摇、支付宝集福卡、微信抢红包、抽奖大转盘6种抽奖活动的实现出发,让小伙伴切身的体验下如何实现不同的抽奖活动,这些活动实现的差异和难点在哪,并示范用多种方法(互斥锁、atomic、sync.Map等等)解决并发安全问题。...# I1 M' a0 I9 `% S
2-1 年会抽奖_实现分析
! B* y+ z9 |' S. N2-2 年会抽奖基本功能实现  u) ~7 |. ]3 F+ Z+ {2 m
2-3 编写web单元测试和并发安全问题* Y6 z: A1 ?, p, h: g; e2 i* h
2-4 用互斥锁解决并发安全问题
" b$ S% Y. L0 `1 n' e! g: a% D2-5 彩票_实现分析
8 q8 w9 x' y  W0 G8 k2-6 刮刮乐和双色球 试看
& M3 l! i: y1 I2-7 微信摇一摇_实现分析& }& d  Q( h1 O4 A4 y/ n
2-8 微信摇一摇实现(上)- I0 q. g0 R" Z* K# O5 f
2-9 微信摇一摇实现(下), e% _8 @' C5 [; g( r
2-10 bug修复和压测# n6 }; T0 D8 z7 I  y2 j* ?
2-11 支付宝集福卡_实现分析
6 P: z5 [" }$ F6 A2-12 支付宝集福卡实现
# G. \- r( R) G) h& ?- `/ I2-13 微博抢红包_实现分析+ ]! ^. S$ N4 N* o$ w
2-14 实现发红包4 Y) ~; o) u3 _+ f
2-15 实现抢红包
" h/ \  k$ r5 X, M2-16 均衡问题和sync.Map解决异常
7 v, p9 D! d  E2 z# H, U3 K0 ^2-17 改用chan的方式解决并发安全问题
9 w2 ?7 M" {+ C2-18 再次压测验证和优化改造
/ g- c% y) j; G% r) k# Z2-19 抽奖大转盘_实现分析) z( A' _5 Z- V  D
2-20 抽奖大转盘初步实现( X; d5 z. N. @5 J8 Z
2-21 sync.Mutex和atomic改造性能对比, E9 [/ a$ S7 `* i/ l
2-22 六种抽奖活动总结
- }6 n6 X; m2 _3 {* L% G2-23 并发编程与锁的底层原理
: [# t* ~# v# I2-24 高并发和高性能系统中锁的影响与解决办法
7 s9 H0 r8 A/ N$ B2 K4 U5 P' |2-25 阶段任务
6 A' W% n. ?. Z/ _/ z1 L# q( E/ S" z0 ~7 u
第3章 系统设计和架构设计【扩胸运动,有容乃大】
4 i7 p  v- u8 h/ a; {本章对抽奖系统和架构进行详细的设计。总结前面的开发经验,从需求分析开始入手,整理需求,提炼功能,分析完善用户操作和业务流程、数据库设计、缓存设计要点。# _6 \" v' C" b( r8 B7 l
3-1 需求整理和提炼
7 E5 x/ a' C& z3-2 用户操作和业务流程
+ ?; v7 D$ {$ @# l' J9 Y; B3-3 数据库设计- Y5 e$ e" ^" B- R: i- }3 Q$ a
3-4 缓存设计 试看
6 B6 t1 o7 w$ I: X3-5 系统架构设计
9 V' Q, M6 l# N$ C1 |8 P3-6 系统设计和架构设计总结
7 G$ w5 s, H1 J6 m. f9 f# c; v1 h3-7 高性能程序设计,缓存为王
0 G/ ^: l- j2 @- }! i# }3-8 系统架构升级之道,关注关键服务依赖6 C, T8 R' \  S& n" Y& i! L
3-9 阶段任务  A  r) Q- X! D0 f% K
( d4 z7 G, V% v5 |
第4章 项目框架与核心代码【踢腿运动,固若磐石】
  @* W4 Q, ^# t* @0 }本章开始动手使用iris+xorm先把项目框架搭建起来,并且把基础的核心代码(dao,services,comm,用户登录、退出等)完成,为后续的功能开发做基础的准备。
* K- l; Q" s: W2 r# L8 d4-1 项目框架搭建
9 e0 w. B7 E( D. P, T6 {( C4-2 数据模型的生成
- t# {) S* x9 Y, k4-3 核心的dao和service类9 u. Y7 i! T! q  j
4-4 定义dao
, f+ O3 ^: _& P8 m: @( A4-5 定义service
, J. A3 X2 V+ D4-6 定义数据库和redis配置信息! L7 P( M5 z8 G
4-7 创建数据库实例及其要点
5 i' ^+ C/ W9 E: }0 x4-8 创建redis实例及其要点, |( b9 ?. e' B5 Z3 Z9 F8 _: H
4-9 利用iris建立web站点# m) Y( W) W- h5 t3 U
4-10 项目配置和通用方法
1 ]9 j7 B/ z# Y5 i4-11 web站点初始化构建
2 b9 T( e; u: h3 ?1 M1 X& J# ]. _4-12 实现IndexController
8 j2 N; b! _) N) A# n4 L4 |4-13 完善路由和main.go文件
- S) V% i* W, ?/ Q8 H4-14 登录和退出:安全值校验和防篡改
2 ]$ E1 l! \" M: }/ Z* O8 |7 B
第5章 后台功能开发【体侧运动,运筹帷幄】
0 N9 H% {' s5 g0 w2 i- p一个可视化的管理后台可以更好的帮助产品运营来自助操作,本章将实现相关功能并完成抽奖活动的定制规则设置。
8 {" t' ~  u3 Q5-1 后台功能开发介绍
/ K0 Z3 G. ^: u2 `: k5-2 页面模板和AdminController+ j; S# \! v) J6 Y% c* ^
5-3 奖品管理实现(上)
( |6 W9 j, f3 Y1 b8 {5-4 奖品管理实现(中)
5 m# a1 m0 }) B- j5-5 奖品管理实现(下)0 @' W& w& I& H. @) p
5-6 优惠券管理实现(上)* m/ F& w; I4 U; y" c
5-7 优惠券管理实现(下)) Q  n6 d' V; b8 c% Q" k+ o
5-8 中奖记录管理
+ I+ p6 h. V# e2 G5-9 用户管理
! G4 F) U( E" O5-10 IP黑名单管理
2 M! Y) L' _# C: g) E* B* h
- M! y2 T) P4 b$ o* M第6章 基于mysql的抽奖功能开发【体转运动,基础版本】9 n0 x3 j% {3 m
本章将先完成后端抽奖接口的实现,完成抽奖业务逻辑和数据流程的开发。
$ X' w/ e+ s1 @. E* o6-1 抽奖接口开发细节分析6 O- r. s) R' U( v( E4 _, [
6-2 用户并发操作的锁" m2 Z4 C5 {1 R% J
6-3 验证用户、IP今日参与次数(上)
; b$ T3 b% c* @# r" ~3 _" f2 q6-4 验证用户、IP今日参与次数(下)
, C8 N- y6 C3 G) A* n6-5 用户、IP黑名单的处理
! K2 G; s$ ^# m, U- [, K6-6 抽奖的实现& J$ D- ?8 d! ]( `2 C9 _
6-7 发奖的实现8 y9 t- F% T) i1 T
6-8 中奖记录和返回结果# ^$ u+ S8 H9 a& |4 A

8 b  D! a' }$ c: G6 i第7章 使用redis缓存优化【全身运动,升级版本】
0 b/ T7 h3 L3 B3 \( `本章引入redis来优化整个系统,减轻对mysql的依赖,提高抽奖接口的性能。9 _0 w/ Y! H. e, D4 P: z6 {6 n3 J$ [
7-1 分析_奖品数据全量缓存8 E* f( l8 K7 b* ^* r' o& ^1 [7 z
7-2 实现_奖品数据全量缓存(上)* V+ t9 M2 B% t2 ~. e
7-3 实现_奖品数据全量缓存(下)9 T! a- P& Q& U
7-4 分析_单个用户数据部分缓存. B4 N& x, j0 u) ^9 e3 s1 |
7-5 实现_单个用户数据部分缓存
; T" p$ r- z5 f7-6 分析_IP黑名单数据缓存
6 A6 @) N1 d  A9 T( _7-7 实现_IP黑名单数据缓存
4 h. l8 T9 s! T4 }, D; `0 h# j: q7-8 优化IP今日抽奖次数
9 U+ f3 ?$ b. \, |5 }5 r! r9 ?7-9 优化用户今日抽奖次数
! |/ d6 `. F% ^; [( k9 ^7-10 用户今日抽奖次数(上)
1 E8 X0 g% s  `% \/ f- l7-11 用户今日抽奖次数(下)
$ y, }. W' U- r$ O( c- C9 i7-12 为什么使用奖品池
2 w& P) r& J4 j9 U3 r) P/ W  L; \$ X( L7-13 初步使用奖品池% M8 h' ^: q) H2 z
7-14 分析_优惠券的全量缓存+ D  }$ `) C( T6 {/ e- d/ c8 W4 Z7 x$ y8 l
7-15 实现_优惠券的全量缓存(上)! |  T5 G, v2 x& ^- {2 p
7-16 实现_优惠券的全量缓存(下)
/ E2 P0 T/ C- i3 {/ Z" v( h7 M& u$ G7-17 使用redis优化总结& D9 l- m4 T+ V- }& e

& r& g4 h$ `8 H第8章 奖品池以及发奖计划的实现【跳跃运动,极致版本】
4 N' G5 y5 k$ k9 I本章实现两个基础服务功能(更新发奖计划,自动填充资源池),来完成奖品的发奖计划数据维护,保证可以合理的把奖品填充到奖品池中。& n# ]7 v0 o7 P) l4 S% `  I
8-1 发奖计划设计分析
& @, Z( p7 `. {8-2 实现发奖计划(上)
" I5 v6 G+ R1 a  {& U5 E) d8-3 实现发奖计划(中)
3 W6 h, v8 u) P+ |+ w1 {/ }8-4 实现发奖计划(下). b; K6 O: D. y7 [
8-5 自动填充奖品池分析
. |! [" o* v) e; _8-6 实现奖品池(上)
) Z7 j' p2 }  x2 m& N3 V/ Z8-7 实现奖品池(下)
; ~1 C+ z* Q2 i8 S& `8-8 总结发奖计划和奖品池
5 e. m, w$ e( p$ B! M# w/ i  T+ ^
' ?' f' b& O% \: E+ k第9章 完整性演示以及更多总结【整理运动,整体交付】1 d4 z3 F0 [6 L0 w  O. t
实现前端页面的大转盘效果,完整的演示最终的效果。通过不同的设置以及测试方法,利用压力测试工具对系统性能进行分析,深入了解业务逻辑以及技术实现的细节,对系统性能的影响,明白时间消耗的关键点。而更多的思考和总结,让抽奖类活动的有更多玩法。 ...
1 b; `# L- e8 w& d% f9-1 前端大转盘分析
7 Y. G9 ]7 h1 v9-2 前端大转盘效果实现
( {. o" `1 i) d  L$ n, D& Y) q9-3 优化奖品设置分析( u; U" r9 U0 u$ r3 @9 V
9-4 优化发放奖品分析5 \* i2 ~9 T: l/ l
9-5 再来一次压力测试吧2 V8 K/ J9 D, z4 w% ~
9-6 压力测试
5 Q: K+ R5 a; T4 B9-7 更多运营策略
/ J9 C' u( Q) r0 j& N: _2 Q
( ~4 J8 L7 U3 Z  p第10章 引入thrift框架【附加运动,扩展服务】6 e, y3 m+ q0 A1 l8 z5 ?7 B
通过rpc框架,将抽奖系统服务化,可以更加灵活和简单的接入到更多的业务系统中。2 @4 d9 P7 [' l% s( Y: t4 i: X
10-1 了解thrift# A7 v# {0 Q2 Q$ |! K5 b9 b
10-2 定义thrift文件! i8 c5 U) M" p) u3 r
10-3 生成代码0 m+ ?, B! _7 o) H2 Y& K$ C
10-4 服务端接口(上)
! ]9 E- h/ T3 y& b( i* r/ [10-5 服务端接口(中)
( T, ?; X& P; ^10-6 服务端接口(下)2 p0 m3 `& A5 ]4 D
10-7 客户端接口
! I6 s8 b7 k7 r6 V( x! F' `4 O10-8 总结
; V! @& b) P, a: ~% C  s. Y& ~1 }1 J; D0 D) [; X( P- I
第11章 课程总结【结束,沉淀】
, c* A) |" J" R5 p; H  b7 U; W对课程进行总结( W+ D+ }4 F7 z8 W
11-1 问题与思考* y- e) b8 ?% g7 V$ ?" B- ]4 q
11-2 课程总结
3 B4 ?: _% C( P# z4 y/ @/ r% f0 j% ^  v* ]& ^
〖下载地址〗9 G& ?: `5 f* ~9 a$ a
游客,如果您要查看本帖隐藏内容请回复

  X) k) j" @5 I" H% H1 J/ R1 m/ S# P/ u9 M0 Z+ q3 @

8 R6 K; k8 Y( D# 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:330 s! P7 B8 A0 i, w
你这个是可以在线看的吗
& C$ V( m3 T- p% q. j, h
可以的0 H  Q1 q. R' }: ]( _( o7 u8 l: a6 s: B
回复

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则