Go語言實戰抽獎系統-2018年M課網
〖課程介紹〗:
抽獎系統屬於典型的高併發和高效能的系統,同時,業務需求複雜多變,對系統的靈活性和穩定性要求同樣非常高。本課程先為大家剖析多種抽獎活動的共性和特性,再設計和開發抽獎大轉盤系統的後臺和介面。從基本功能的開發到使用redis步步優化,以及後續的策略對比,通過壓力測試,讓小夥伴直觀的瞭解不同的設定導致的的效能差異,探究效能影響的關鍵因素。通過這門課程的學習,可以對系統的效能、併發、靈活、可靠等方面有更多的理解和掌握,迅速提升,達到中高階工程師的水平!
〖課程目錄〗:
第1章 課程介紹
課程內容的整體介紹以及學習建議。
1-1 Go抽獎系統導學
第2章 6種抽獎活動來一遍
看書不如動手,本章將從年會抽獎、彩票刮獎、微信搖一搖、支付寶集福卡、微信搶紅包、抽獎大轉盤6種抽獎活動的實現出發,讓小夥伴切身的體驗下如何實現不同的抽獎活動,這些活動實現的差異和難點在哪,並示範用多種方法(互斥鎖、atomic、sync.Map等等)解決併發安全問題。...
2-1 年會抽獎_實現分析
2-2 年會抽獎基本功能實現
2-3 編寫web單元測試和併發安全問題
2-4 用互斥鎖解決併發安全問題
2-5 彩票_實現分析
2-6 刮刮樂和雙色球
2-7 微信搖一搖_實現分析
2-8 微信搖一搖實現(上)
2-9 微信搖一搖實現(下)
2-10 bug修復和壓測
2-11 支付寶集福卡_實現分析
2-12 支付寶集福卡實現
2-13 微博搶紅包_實現分析
2-14 實現發紅包
2-15 實現搶紅包
2-16 均衡問題和sync.Map解決異常
2-17 改用chan的方式解決併發安全問題
2-18 再次壓測驗證和優化改造
2-19 抽獎大轉盤_實現分析
2-20 抽獎大轉盤初步實現
2-21 sync.Mutex和atomic改造效能對比
2-22 六種抽獎活動總結
第3章 系統設計和架構設計
本章對抽獎系統和架構進行詳細的設計。總結前面的開發經驗,從需求分析開始入手,整理需求,提煉功能,分析完善使用者操作和業務流程、資料庫設計、快取設計要點。
3-1 需求整理和提煉
3-2 使用者操作和業務流程
3-3 資料庫設計
3-4 快取設計
3-5 系統架構設計
3-6 系統設計和架構設計總結
第4章 專案框架與核心程式碼
本章開始動手使用iris+xorm先把專案框架搭建起來,並且把基礎的核心程式碼(dao,services,comm,使用者登入、退出等)完成,為後續的功能開發做基礎的準備。
4-1 專案框架搭建
4-2 資料模型的生成
4-3 核心的dao和service類
4-4 定義dao
4-5 定義service
4-6 定義資料庫和redis配置資訊
4-7 建立資料庫例項及其要點
4-8 建立redis例項及其要點
4-9 利用iris建立web站點
4-10 專案配置和通用方法
4-11 web站點初始化構建
4-12 實現IndexController
4-13 完善路由和main.go檔案
4-14 登入和退出:安全值校驗和防篡改
第5章 後臺功能開發
一個視覺化的管理後臺可以更好的幫助產品運營來自助操作,本章將實現相關功能並完成抽獎活動的定製規則設定。
5-1 後臺功能開發介紹
5-2 頁面模板和AdminController
5-3 獎品管理實現(上)
5-4 獎品管理實現(中)
5-5 獎品管理實現(下)
5-6 優惠券管理實現(上)
5-7 優惠券管理實現(下)
5-8 中獎記錄管理
5-9 使用者管理
5-10 IP黑名單管理
第6章 基於mysql的抽獎功能開發
本章將先完成後端抽獎介面的實現,完成抽獎業務邏輯和資料流程的開發。
6-1 抽獎介面開發細節分析
6-2 使用者併發操作的鎖
6-3 驗證使用者、IP今日參與次數(上)
6-4 驗證使用者、IP今日參與次數(下)
6-5 使用者、IP黑名單的處理
6-6 抽獎的實現
6-7 發獎的實現
6-8 中獎記錄和返回結果
第7章 使用redis快取優化
本章引入redis來優化整個系統,減輕對mysql的依賴,提高抽獎介面的效能。
7-1 分析_獎品資料全量快取
7-2 實現_獎品資料全量快取(上)
7-3 實現_獎品資料全量快取(下)
7-4 分析_單個使用者資料部分快取
7-5 實現_單個使用者資料部分快取
7-6 分析_IP黑名單資料快取
7-7 實現_IP黑名單資料快取
7-8 優化IP今日抽獎次數
7-9 優化使用者今日抽獎次數
7-10 使用者今日抽獎次數(上)
7-11 使用者今日抽獎次數(下)
7-12 為什麼要使用獎品池
7-13 初步使用獎品池
7-14 分析_優惠券的全量快取
7-15 實現_優惠券的全量快取(上)
7-16 實現_優惠券的全量快取(下)
7-17 使用redis優化總結
第8章 獎品池以及發獎計劃的實現
本章實現兩個基礎服務功能(更新發獎計劃,自動填充資源池),來完成獎品的發獎計劃資料維護,保證可以合理的把獎品填充到獎品池中。
8-1 發獎計劃設計分析
8-2 實現發獎計劃(上)
8-3 實現發獎計劃(中)
8-4 實現發獎計劃(下)
8-5 自動填充獎品池分析
8-6 實現獎品池(上)
8-7 實現獎品池(下)
8-8 總結髮獎計劃和獎品池
第9章 完整性演示以及更多總結
實現前端頁面的大轉盤效果,完整的演示最終的效果。通過不同的設定以及測試方法,利用壓力測試工具對系統性能進行分析,深入瞭解業務邏輯以及技術實現的細節,對系統性能的影響,明白時間消耗的關鍵點。而更多的思考和總結,讓抽獎類活動的有更多玩法。 ...
9-1 前端大轉盤分析
9-2 前端大轉盤效果實現
9-3 優化獎品設定分析
9-4 優化發放獎品分析
9-5 再來一次壓力測試吧
9-6 壓力測試
9-7 更多運營策略
第10章 引入thrift框架
通過rpc框架,將抽獎系統服務化,可以更加靈活和簡單的接入到更多的業務系統中。
10-1 瞭解thrift
10-2 定義thrift檔案
10-3 生成程式碼
10-4 服務端介面(上)
10-5 服務端介面(中)
10-6 服務端介面(下)
10-7 客戶端介面
10-8 總結
第11章 課程總結
對課程進行總結
11-1 問題與思考
11-2 課程總結
下載地址:百度網盤
〖課程介紹〗:
抽獎系統屬於典型的高併發和高效能的系統,同時,業務需求複雜多變,對系統的靈活性和穩定性要求同樣非常高。本課程先為大家剖析多種抽獎活動的共性和特性,再設計和開發抽獎大轉盤系統的後臺和介面。從基本功能的開發到使用redis步步優化,以及後續的策略對比,通過壓力測試,讓小夥伴直觀的瞭解不同的設定導致的的效能差異,探究效能影響的關鍵因素。通過這門課程的學習,可以對系統的效能、併發、靈活、可靠等方面有更多的理解和掌握,迅速提升,達到中高階工程師的水平!
〖課程目錄〗:
第1章 課程介紹
課程內容的整體介紹以及學習建議。
1-1 Go抽獎系統導學
第2章 6種抽獎活動來一遍
看書不如動手,本章將從年會抽獎、彩票刮獎、微信搖一搖、支付寶集福卡、微信搶紅包、抽獎大轉盤6種抽獎活動的實現出發,讓小夥伴切身的體驗下如何實現不同的抽獎活動,這些活動實現的差異和難點在哪,並示範用多種方法(互斥鎖、atomic、sync.Map等等)解決併發安全問題。...
2-1 年會抽獎_實現分析
2-2 年會抽獎基本功能實現
2-3 編寫web單元測試和併發安全問題
2-4 用互斥鎖解決併發安全問題
2-5 彩票_實現分析
2-6 刮刮樂和雙色球
2-7 微信搖一搖_實現分析
2-8 微信搖一搖實現(上)
2-9 微信搖一搖實現(下)
2-10 bug修復和壓測
2-11 支付寶集福卡_實現分析
2-12 支付寶集福卡實現
2-13 微博搶紅包_實現分析
2-14 實現發紅包
2-15 實現搶紅包
2-16 均衡問題和sync.Map解決異常
2-17 改用chan的方式解決併發安全問題
2-18 再次壓測驗證和優化改造
2-19 抽獎大轉盤_實現分析
2-20 抽獎大轉盤初步實現
2-21 sync.Mutex和atomic改造效能對比
2-22 六種抽獎活動總結
第3章 系統設計和架構設計
本章對抽獎系統和架構進行詳細的設計。總結前面的開發經驗,從需求分析開始入手,整理需求,提煉功能,分析完善使用者操作和業務流程、資料庫設計、快取設計要點。
3-1 需求整理和提煉
3-2 使用者操作和業務流程
3-3 資料庫設計
3-4 快取設計
3-5 系統架構設計
3-6 系統設計和架構設計總結
第4章 專案框架與核心程式碼
本章開始動手使用iris+xorm先把專案框架搭建起來,並且把基礎的核心程式碼(dao,services,comm,使用者登入、退出等)完成,為後續的功能開發做基礎的準備。
4-1 專案框架搭建
4-2 資料模型的生成
4-3 核心的dao和service類
4-4 定義dao
4-5 定義service
4-6 定義資料庫和redis配置資訊
4-7 建立資料庫例項及其要點
4-8 建立redis例項及其要點
4-9 利用iris建立web站點
4-10 專案配置和通用方法
4-11 web站點初始化構建
4-12 實現IndexController
4-13 完善路由和main.go檔案
4-14 登入和退出:安全值校驗和防篡改
第5章 後臺功能開發
一個視覺化的管理後臺可以更好的幫助產品運營來自助操作,本章將實現相關功能並完成抽獎活動的定製規則設定。
5-1 後臺功能開發介紹
5-2 頁面模板和AdminController
5-3 獎品管理實現(上)
5-4 獎品管理實現(中)
5-5 獎品管理實現(下)
5-6 優惠券管理實現(上)
5-7 優惠券管理實現(下)
5-8 中獎記錄管理
5-9 使用者管理
5-10 IP黑名單管理
第6章 基於mysql的抽獎功能開發
本章將先完成後端抽獎介面的實現,完成抽獎業務邏輯和資料流程的開發。
6-1 抽獎介面開發細節分析
6-2 使用者併發操作的鎖
6-3 驗證使用者、IP今日參與次數(上)
6-4 驗證使用者、IP今日參與次數(下)
6-5 使用者、IP黑名單的處理
6-6 抽獎的實現
6-7 發獎的實現
6-8 中獎記錄和返回結果
第7章 使用redis快取優化
本章引入redis來優化整個系統,減輕對mysql的依賴,提高抽獎介面的效能。
7-1 分析_獎品資料全量快取
7-2 實現_獎品資料全量快取(上)
7-3 實現_獎品資料全量快取(下)
7-4 分析_單個使用者資料部分快取
7-5 實現_單個使用者資料部分快取
7-6 分析_IP黑名單資料快取
7-7 實現_IP黑名單資料快取
7-8 優化IP今日抽獎次數
7-9 優化使用者今日抽獎次數
7-10 使用者今日抽獎次數(上)
7-11 使用者今日抽獎次數(下)
7-12 為什麼要使用獎品池
7-13 初步使用獎品池
7-14 分析_優惠券的全量快取
7-15 實現_優惠券的全量快取(上)
7-16 實現_優惠券的全量快取(下)
7-17 使用redis優化總結
第8章 獎品池以及發獎計劃的實現
本章實現兩個基礎服務功能(更新發獎計劃,自動填充資源池),來完成獎品的發獎計劃資料維護,保證可以合理的把獎品填充到獎品池中。
8-1 發獎計劃設計分析
8-2 實現發獎計劃(上)
8-3 實現發獎計劃(中)
8-4 實現發獎計劃(下)
8-5 自動填充獎品池分析
8-6 實現獎品池(上)
8-7 實現獎品池(下)
8-8 總結髮獎計劃和獎品池
第9章 完整性演示以及更多總結
實現前端頁面的大轉盤效果,完整的演示最終的效果。通過不同的設定以及測試方法,利用壓力測試工具對系統性能進行分析,深入瞭解業務邏輯以及技術實現的細節,對系統性能的影響,明白時間消耗的關鍵點。而更多的思考和總結,讓抽獎類活動的有更多玩法。 ...
9-1 前端大轉盤分析
9-2 前端大轉盤效果實現
9-3 優化獎品設定分析
9-4 優化發放獎品分析
9-5 再來一次壓力測試吧
9-6 壓力測試
9-7 更多運營策略
第10章 引入thrift框架
通過rpc框架,將抽獎系統服務化,可以更加靈活和簡單的接入到更多的業務系統中。
10-1 瞭解thrift
10-2 定義thrift檔案
10-3 生成程式碼
10-4 服務端介面(上)
10-5 服務端介面(中)
10-6 服務端介面(下)
10-7 客戶端介面
10-8 總結
第11章 課程總結
對課程進行總結
11-1 問題與思考
11-2 課程總結