需求
公司要實(shí)現(xiàn)大中臺(tái)戰(zhàn)略,以往的后臺(tái)都是基于傳統(tǒng)的技術(shù)架構(gòu)實(shí)現(xiàn)的系統(tǒng)。
系統(tǒng)在性能及擴(kuò)展性上都存在有客觀的局限性。
如何將傳統(tǒng)系統(tǒng)的原子性服務(wù)或組合服務(wù)提供給中臺(tái)是需要解決的一個(gè)問題。
概要設(shè)計(jì)
- 原子性的服務(wù),通過直連數(shù)據(jù)模型,并將其轉(zhuǎn)化為RESTFULL的方式來實(shí)現(xiàn)。
- 組合服務(wù)通過接口適配轉(zhuǎn)換及轉(zhuǎn)化為統(tǒng)一RESTFULL的方式來實(shí)現(xiàn)。
詳細(xì)設(shè)計(jì)
原子性服務(wù)設(shè)計(jì)
- 服務(wù)列表
| 服務(wù)編號(hào) | 服務(wù)名稱 | 備注 |
|---|---|---|
| 模型元數(shù)據(jù) | schema/base/${MODEL_NAME} | 如果${MODE_NAME}為空,則是全部信息 |
| 模型屬性元數(shù)據(jù) | schema/prop/${PROP_NAME} | 如果${PROP_NAME}為空,則是全部信息 |
| 模型主鍵元數(shù)據(jù) | schema/primary_key/${PRIMARY_KEY} | 如果${PRIMARY_KEY}為空,則是全部信息 |
| 模型數(shù)據(jù) | model/data/${MODEL_NAME} | 如果${MODEL_NAME}為空,則是全部信息 |
| 模型統(tǒng)計(jì) | model/stastic/${MODEL_NAME} | 如果${MODEL_NAME}為空,則是全部信息 |
- 服務(wù)參數(shù)
- 翻頁參數(shù)
Pagination {
offset : int
limit : int
}
模型元數(shù)據(jù)信息
視圖層
JSON控制層
GET protocal://ip:port/schema/model/${MODEL_NAME}模型層
| 字段名稱 | 字段類型 | 備注 |
|---|---|---|
| NAME | string | 模型名稱 |
| COMMENT | string | 模型備注 |
實(shí)現(xiàn)
技術(shù)選型
完全因?yàn)閷W(xué)習(xí),選擇了golang,及相關(guān)庫。

image.png
視圖層
基于json
控制層
基于golang的net庫
模型
基于第三方組件連接數(shù)據(jù)庫,及使用第三方ORM組件。
項(xiàng)目管理
源碼管理
git
持續(xù)集成
jenkins
迭代計(jì)劃
| 階段 | 任務(wù)目標(biāo) | 詳細(xì)描述 |
|---|---|---|
| 1 | 完成基礎(chǔ)框架搭建 | mvc處理流程及相關(guān)技術(shù)組件 |
| 2 | 實(shí)現(xiàn)元數(shù)據(jù)服務(wù) | 元數(shù)據(jù)基礎(chǔ),屬性,主鍵,索引等服務(wù) |
| 3 | 實(shí)現(xiàn)數(shù)據(jù)服務(wù) | 數(shù)據(jù)信息,數(shù)據(jù)統(tǒng)計(jì)信息 |