開篇
隨着go語言學習的深入,包括實際中自己的需求,決定從頭實現一套自己的微服務架構的遊戲服務器。其中會融入很多我對於微服務的理解,以及對於整體架構設計思想的表達。
全部文章不涉及到具體的代碼實現,只包含結構設計、程序設計、表設計、緩存設計,力求按照文中內容無論使用任何語言均能快速搭建出設計的服務。
我理解的微服務
按照我對於微服務的理解,微服務應該符合的標準:
- 獨立性 ,一個服務提供一個功能。例如日誌服務,只提供將請求的數據寫入到日誌文件中。
- 通用性,服務提供的功能能儘可能的支持各類需求。依然拿日誌服務舉例,日誌有很多種格式化方式,那麼這些差異內容交給服務調用方去決定,日誌服務只提供將調用方請求的字符串寫入到日誌中。
- 擴展性,現代的互聯網公司越來越看重大數據下的服務器表現,以及如果一開始沒有做好對大規模請求的處理,後面再來進行重構將是非常痛苦的一件事情。因此最好能實現水平擴展。
- 平衡性,最理想話的服務,是隻提供一個單一的服務,如果有其他需求,則通過調用另一個提供該服務的服務來解決。但是服務越多,耦合越大,越不利於維護,因此服務的功能與獨立要充分考慮權衡。
服務列表
- 用戶服務器
- 邏輯服務器
- 排行榜服務器
- 郵件服務器
- 日誌服務器
- 戰鬥服務器
- web服務器
- 聊天服務器