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

  [复制链接]
查看19695 | 回复74 | 2019-6-26 23:57:42 | 显示全部楼层 |阅读模式
QQ截图20191010124522.jpg , W! _. n; M& e' H2 i7 r; m) {+ N9 i& P# {
〖课程介绍〗
( k. N8 _" M. j: L抽奖系统属于典型的高并发和高性能的系统,同时,业务需求复杂多变,对系统的灵活性和稳定性要求同样非常高。本课程先为大家剖析多种抽奖活动的共性和特性,再设计和开发抽奖大转盘系统的后台和接口。从基本功能的开发到使用redis步步优化,以及后续的策略对比,通过压力测试,让小伙伴直观的了解不同的设置导致的的性能差异,探究性能影响的关键因素。通过这门课程的学习,可以对系统的性能、并发、灵活、可靠等方面有更多的理解和掌握,迅速提升,达到中高级工程师的水平
6 c5 P  A. Q5 ~$ y, `2 U. U1 L, R; `8 n
〖课程目录〗
3 [6 @' W4 z1 N9 ]( R第1章 课程介绍【预备,初识】% A) t/ c& M3 [! O. O
课程内容的整体介绍以及学习建议。( n' ~+ N# F2 ^$ Q  u) C4 w* J
1-1 Go抽奖系统导学 试看' ?8 j8 Y) L' V8 N# G  s
/ L% T. R% Z- n+ C; B' k
第2章 6种抽奖活动来一遍【伸展运动,舒缓热身】
+ O; I7 I( E5 C8 W/ H1 Y看书不如动手,本章将从年会抽奖、彩票刮奖、微信摇一摇、支付宝集福卡、微信抢红包、抽奖大转盘6种抽奖活动的实现出发,让小伙伴切身的体验下如何实现不同的抽奖活动,这些活动实现的差异和难点在哪,并示范用多种方法(互斥锁、atomic、sync.Map等等)解决并发安全问题。...
6 ^( L1 g) ?* w* P; j( q* ~8 x! u2-1 年会抽奖_实现分析) I, y8 I) N0 s1 q: r
2-2 年会抽奖基本功能实现
! _0 ~9 M: S) R2-3 编写web单元测试和并发安全问题) m. r" L! {! j' K! m* k! f
2-4 用互斥锁解决并发安全问题; g8 ~0 F5 O  V/ ~' C0 O2 e
2-5 彩票_实现分析$ u) ^) @* m: s: j+ k
2-6 刮刮乐和双色球 试看# @+ ~$ A4 t+ Z: z. ]+ Q" }
2-7 微信摇一摇_实现分析* ^- [+ r/ k6 M4 c) u" G6 f
2-8 微信摇一摇实现(上)+ O2 W* ~* l9 f# T, x
2-9 微信摇一摇实现(下): _" C) G/ t4 |1 l+ x" g  @
2-10 bug修复和压测
- S6 Y- j! _" t' V2-11 支付宝集福卡_实现分析1 M1 E& @7 R  C5 j$ v4 T
2-12 支付宝集福卡实现2 S3 q' O- f  q3 s* e
2-13 微博抢红包_实现分析
: G( q0 J+ u9 [; D2-14 实现发红包
( j7 U( N+ t" g1 Z4 K: b2-15 实现抢红包
5 ?: y( s5 B; R% @2-16 均衡问题和sync.Map解决异常
5 w. t2 W2 f3 o# m" q2-17 改用chan的方式解决并发安全问题
: O4 \# }* |- O% u0 h2-18 再次压测验证和优化改造5 n) Q2 l1 W& y5 i% p* @1 O
2-19 抽奖大转盘_实现分析. k- ^/ h' g. k% L/ f
2-20 抽奖大转盘初步实现% R% x7 U$ @/ A- H
2-21 sync.Mutex和atomic改造性能对比8 l+ z+ t% `' w" C9 P8 _
2-22 六种抽奖活动总结0 \# N  n8 V0 F$ l" U/ a  Y
2-23 并发编程与锁的底层原理
: Q, A, W7 w' B  _2-24 高并发和高性能系统中锁的影响与解决办法, g+ i) Q0 D' Z9 U6 V0 S8 T
2-25 阶段任务* u4 n2 G) u$ f5 V

+ Z9 j( E' j) l- |5 {2 c4 c1 \! |第3章 系统设计和架构设计【扩胸运动,有容乃大】. o# D7 E, }8 l  L" g
本章对抽奖系统和架构进行详细的设计。总结前面的开发经验,从需求分析开始入手,整理需求,提炼功能,分析完善用户操作和业务流程、数据库设计、缓存设计要点。+ W4 x  V( E5 Z1 O0 Z
3-1 需求整理和提炼& ^7 A6 E' e, I3 _3 l
3-2 用户操作和业务流程
2 A) Y$ l4 r2 q% [& l3-3 数据库设计
/ [( B. D- [- t3-4 缓存设计 试看6 Z* I% x* Y; w6 h
3-5 系统架构设计
& R) A  q& ]3 ^* A3-6 系统设计和架构设计总结
9 b5 y" E! Q( Q3-7 高性能程序设计,缓存为王
! I- M! P' ?0 Y9 q8 }7 T3-8 系统架构升级之道,关注关键服务依赖
/ K) G% A' k0 ?$ g& ^6 z2 z3-9 阶段任务
+ p2 O/ e4 n' p& a* ^, W. a% L& L5 A( z. y7 }9 |0 x6 _
第4章 项目框架与核心代码【踢腿运动,固若磐石】$ x) t$ e: W7 c0 ]# d
本章开始动手使用iris+xorm先把项目框架搭建起来,并且把基础的核心代码(dao,services,comm,用户登录、退出等)完成,为后续的功能开发做基础的准备。, Z; K6 v& o% Q, [5 S9 e
4-1 项目框架搭建
" e4 {+ x1 t4 R( `% y4-2 数据模型的生成3 S3 ~4 |6 Q! i# @
4-3 核心的dao和service类
1 q7 _: C. F+ s/ j4 f8 A4-4 定义dao; u" T9 k* Z3 F4 k9 I; L- p7 }. C3 U
4-5 定义service
0 ~9 q& X6 ]* G8 H4-6 定义数据库和redis配置信息8 I+ t' L4 i7 @: H  F
4-7 创建数据库实例及其要点$ j) @; G; q1 t( D
4-8 创建redis实例及其要点5 d1 ~! e2 Y* @4 U
4-9 利用iris建立web站点3 S. s+ n, J; J5 K3 T! A# }, x
4-10 项目配置和通用方法
4 b$ K. e! w0 ^' r4-11 web站点初始化构建% h+ L% P5 g9 L3 D
4-12 实现IndexController
7 ]7 h) p, O$ \! [+ e1 F4-13 完善路由和main.go文件7 D. y4 Y4 i$ b  Y# `
4-14 登录和退出:安全值校验和防篡改# a5 g9 ?5 i+ r5 d/ ?$ q

' p( m, b1 @8 N. \& P8 y$ B8 i% ?% p第5章 后台功能开发【体侧运动,运筹帷幄】; g  E' @$ z- ?5 ?6 J
一个可视化的管理后台可以更好的帮助产品运营来自助操作,本章将实现相关功能并完成抽奖活动的定制规则设置。) ?! K- v. _  K+ W
5-1 后台功能开发介绍: a! S6 G* d, n
5-2 页面模板和AdminController' S5 k" ?+ d4 C# Z/ @+ P8 w
5-3 奖品管理实现(上)' I/ ]# s& L( j9 [
5-4 奖品管理实现(中)
- m( D/ a6 P8 P5-5 奖品管理实现(下)
# j* K! C; Q1 W) X5-6 优惠券管理实现(上). E$ Z1 l' w8 \0 V- g' x& U) b7 p
5-7 优惠券管理实现(下)7 T' u7 Y( W# E# @
5-8 中奖记录管理
2 X* |. s1 W: I3 M5-9 用户管理
- j. V7 T. E7 a/ N  ]5-10 IP黑名单管理5 b9 V# v7 c, f! l4 P2 m
1 F5 z6 @% Y, n
第6章 基于mysql的抽奖功能开发【体转运动,基础版本】3 e/ ^4 k& P2 [$ H6 g9 R
本章将先完成后端抽奖接口的实现,完成抽奖业务逻辑和数据流程的开发。
5 S. l3 l8 I! I4 v6-1 抽奖接口开发细节分析& D/ A! }$ {8 T# ^4 r: r
6-2 用户并发操作的锁
/ Q! n% I4 k! E  h6-3 验证用户、IP今日参与次数(上)$ C3 v" {8 P2 b3 H
6-4 验证用户、IP今日参与次数(下)/ S5 k% |6 R. ^' V7 s5 ~% w2 Q; `
6-5 用户、IP黑名单的处理6 }' ]* g0 r( y- Q
6-6 抽奖的实现
: E1 g5 e/ D0 e- t/ \7 A/ |6-7 发奖的实现
. {4 V+ @$ b# ], u) r6-8 中奖记录和返回结果4 H' C- ?. |' ]$ G$ Q$ \2 v
5 M( J/ \7 W0 D9 b0 P9 v
第7章 使用redis缓存优化【全身运动,升级版本】$ K6 Y4 l" S0 Y+ {) n
本章引入redis来优化整个系统,减轻对mysql的依赖,提高抽奖接口的性能。1 P% u' ~2 F1 A: y4 |4 x6 I, ?% x
7-1 分析_奖品数据全量缓存
8 e- q  n9 r7 [7-2 实现_奖品数据全量缓存(上)( o3 p# z" y2 a: w$ z' q9 _: P
7-3 实现_奖品数据全量缓存(下)7 z; d. u3 ^! }) N* l0 Z9 \9 c
7-4 分析_单个用户数据部分缓存7 l7 A0 q5 }; ]6 U! B
7-5 实现_单个用户数据部分缓存
+ j' G. V' t2 [6 k. R& I: D3 I7-6 分析_IP黑名单数据缓存
9 @1 r, N& b- y: X1 R& M: E0 K' l; |7-7 实现_IP黑名单数据缓存
7 F' @9 w% S4 D( f! |2 j7-8 优化IP今日抽奖次数' b# N$ O0 g, ~3 @& j1 Z& h3 J1 L2 N
7-9 优化用户今日抽奖次数
4 n: p# L5 b: D3 n9 K8 n+ K! X0 z7-10 用户今日抽奖次数(上)- H5 d- v8 h; R
7-11 用户今日抽奖次数(下)
7 k, b3 z" y# {2 r) P8 \" Q7-12 为什么使用奖品池! H5 {, A& t3 z" \
7-13 初步使用奖品池2 x( D% n% c- A  e) X
7-14 分析_优惠券的全量缓存
9 p& ^; z, ?! [0 }; h) r  |7-15 实现_优惠券的全量缓存(上)* s: j. j( ]$ w7 f! ~
7-16 实现_优惠券的全量缓存(下)
8 W  M: }! g) U2 y+ K1 S7-17 使用redis优化总结- Q" {/ M( d8 H( y$ ^$ L/ |
+ a' x* j. B8 J" Y3 \
第8章 奖品池以及发奖计划的实现【跳跃运动,极致版本】
8 e6 J+ y+ P& x+ G! P本章实现两个基础服务功能(更新发奖计划,自动填充资源池),来完成奖品的发奖计划数据维护,保证可以合理的把奖品填充到奖品池中。' h+ f6 J& _/ P# P2 A: G. P3 e
8-1 发奖计划设计分析) v0 ~* K: t& H% z1 k
8-2 实现发奖计划(上)4 v! W1 ?% v) H% X
8-3 实现发奖计划(中)! W5 s7 C" o5 `" g
8-4 实现发奖计划(下)7 ]6 y  z' {2 W8 J
8-5 自动填充奖品池分析
% E' m, x3 Z- p: b. l8-6 实现奖品池(上)
9 P; M9 [1 D$ b$ T2 h3 _8 J8 d8-7 实现奖品池(下)# R( L2 S0 P) K  q$ H- h/ z
8-8 总结发奖计划和奖品池1 J+ g2 a9 X# C8 O+ T/ ?

& h  x! m' V. V7 |. H5 E( f第9章 完整性演示以及更多总结【整理运动,整体交付】+ J% B: U2 G) i5 s4 j/ W/ b
实现前端页面的大转盘效果,完整的演示最终的效果。通过不同的设置以及测试方法,利用压力测试工具对系统性能进行分析,深入了解业务逻辑以及技术实现的细节,对系统性能的影响,明白时间消耗的关键点。而更多的思考和总结,让抽奖类活动的有更多玩法。 ...4 M' }1 ~) s& s: a
9-1 前端大转盘分析
, Z$ P- ~6 x: s! L6 }* e5 w9-2 前端大转盘效果实现
0 Z5 h) v4 R9 x; W  M9-3 优化奖品设置分析3 Y8 m% m& E$ B0 h& u
9-4 优化发放奖品分析
8 ~8 V* ~7 W+ D, O9-5 再来一次压力测试吧% X& o9 H+ q& e: k; V7 h! P
9-6 压力测试
  P: Q# b/ n% k) e9-7 更多运营策略) B2 P* Z/ k* q) p
# D  r$ ~3 I; N/ e( g+ h( x) j! o
第10章 引入thrift框架【附加运动,扩展服务】
, |' V; o; Y  o通过rpc框架,将抽奖系统服务化,可以更加灵活和简单的接入到更多的业务系统中。
( w, ?& j; `' w; v" z, }; H10-1 了解thrift
2 H4 C; P' Q4 _& m4 C) E10-2 定义thrift文件
2 ~& U& M' i6 D10-3 生成代码6 |0 `) l. L! T) y7 w) t/ l4 [
10-4 服务端接口(上)
% @' {) S% Y3 Z1 A- |$ ^6 P10-5 服务端接口(中)
- V; y/ m0 I/ K3 p' \10-6 服务端接口(下)  q8 y$ m7 M3 r
10-7 客户端接口+ N2 g9 w! b* U# n8 r, ^
10-8 总结
( w4 _2 T- _+ H" U
9 b6 x9 v3 C2 Z% D1 t( ?8 ~3 m第11章 课程总结【结束,沉淀】
( f) c) R& u& r" P+ [  W对课程进行总结  _# d" m5 x* j! S0 u. Z( P
11-1 问题与思考6 ]6 W, l4 P" _" Z' |
11-2 课程总结5 w  l6 m+ d' s' u

3 Q1 H+ I& Q* B# I/ }; k〖下载地址〗8 i0 D" x& N+ j9 P; h0 x5 O7 I+ N
游客,如果您要查看本帖隐藏内容请回复
7 B6 I5 |) Z3 S+ |: O

( ?- s+ C$ O3 B! Y8 ?7 F" P9 r5 ?9 L4 H8 S% m: k- `  ?' N
回复

使用道具 举报

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:337 F# ^# f9 b3 l2 C7 H9 G1 }
你这个是可以在线看的吗

) M- ?0 k- j! m. d可以的1 ^2 m+ @2 V3 A- i3 Z5 N5 z$ e
回复

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则