特別聲明:自己學習慕課網大目師兄的微服務視頻的綜合應用,第九篇,九九歸一
1.背詩詞小程序界面和功能點
1.1 界面展示
大家如果要體驗我的小程序,微信搜索 背詩詞 就可以了,全匹配的那個小程序就是我的
- 首頁
- 賞析
點擊首頁的“賞析”按鈕
- 默寫
- 我的
未登錄
已登錄
- 歷史記錄
- 積分明細
- 規則介紹
- 技術架構
1.2 功能介紹
- 總體介紹
每天隨機給用戶更新一首詩詞,如果用戶在背誦裏通過了該詩詞的背誦檢查,它會記錄在歷史記錄頁面,以後不會再出現在你的首頁;如果你不會背誦,沒關係,第二天會幫你更新一首新的詩詞。這樣每天都不單調,並且你可以隨時查看所有你曾經背誦過的詩詞,這是這個小程序存在的意義。 - 首頁詩詞展示
未登錄時,隨機展示一首詩詞;已登錄時,展示當前分配給用戶的詩詞 - 詩詞更換定時任務
凌晨一點,給所有用戶更換新的詩詞 - 詩詞音頻
點擊首頁的喇叭按鈕,播放當前詩詞的朗誦音頻
我的服務器網速不快(帶寬老貴了),所已點擊之後可能會有些延遲 - 背誦
通過純漢字的對比,判斷用戶是否正確背誦記憶了詩詞 - 登錄
對接微信授權登錄接口 - 上滑分頁加載
歷史記錄和積分明細頁面有用到
2.架構圖
2.1 理想中架構圖
微服務嘛,當然是羣組,這樣才能高可用,適應多併發
2.2 實際上的架構圖
然而我只有一個內存2G的服務器,還是在打折的時候買的,單實例都部署不下去,內存不夠,服務器太卡了,當初想的實在太多了,在朋友借了一個4G的服務器之後,瞬間感覺變大款了,然而也只夠部署下面的一套,實際上的架構圖是這樣的
3 代碼開源
整個項目的代碼都已上傳到gitee,包括java代碼和小程序代碼,當然不包括nginx,本地運行也沒有必要用到nginx,https://gitee.com/zengchen2016/springcloud-demo.git,五個項目放在一起了
4 線上體驗
大家如果要體驗我的小程序,微信搜索 背詩詞 就可以了,全匹配的那個小程序就是我的
5.披過的荊斬過的棘
- 小程序開發
真的是對着小程序的開發文檔一點點看的,需要什麼找什麼,哪裏不會點哪裏 - UI設計,css樣式
最讓後端程序員沒脾氣的東西,沒有之一 - nginx
微信小程序只能用域名+https請求,這意味着你得域名備案+弄一個合法證書,你的nginx必須要配置443接口,使用合法的證書,失效不合法的不行的,這個搞了幾天,最後用的是keymanager - jenkins
很方便的一個打包部署的自動化工具,可惜因爲服務器內存原因,捨棄了 - 最滿意的代碼
user項目裏的一個定時任務 com.zengchen.user.task.CurrentPoemTaskBak.java
雖然因爲業務邏輯原因,它廢棄了,但是它是這項目裏我寫的最令自己滿意的代碼, 以前有個面試官問過我這個問題,我當時有點懵,現在我體會到了
6.存在的不足
- 邏輯都放到了controller裏實現了,比如LoginController,應該放到service層裏纔對,這樣便於用事物管理起來
- 定義了Feign的Fallbackhandler ,發生調用錯誤的時候,本可以在裏面寫點邏輯挽回點什麼的,但是裏面沒有寫具體的實現
- alibaba組件版本比較低,沒有按照老師的視頻升級,因爲我還沒看到那裏去
- 仍然有很多組件沒有應用到,比如 消息隊列,服務容錯,鏈路監控