分享
go in action
do_young · · 2362 次点击 · · 开始浏览这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。
需求
公司要实现大中台战略,以往的后台都是基于传统的技术架构实现的系统。
系统在性能及扩展性上都存在有客观的局限性。
如何将传统系统的原子性服务或组合服务提供给中台是需要解决的一个问题。
概要设计
- 原子性的服务,通过直连数据模型,并将其转化为RESTFULL的方式来实现。
- 组合服务通过接口适配转换及转化为统一RESTFULL的方式来实现。
详细设计
原子性服务设计
- 服务列表
| 服务编号 | 服务名称 | 备注 |
|---|---|---|
| 模型元数据 | schema/base/${MODEL_NAME} | 如果${MODE_NAME}为空,则是全部信息 |
| 模型属性元数据 | schema/prop/${PROP_NAME} | 如果${PROP_NAME}为空,则是全部信息 |
| 模型主键元数据 | schema/primary_key/${PRIMARY_KEY} | 如果${PRIMARY_KEY}为空,则是全部信息 |
| 模型数据 | model/data/${MODEL_NAME} | 如果${MODEL_NAME}为空,则是全部信息 |
| 模型统计 | model/stastic/${MODEL_NAME} | 如果${MODEL_NAME}为空,则是全部信息 |
- 服务参数
- 翻页参数
Pagination {
offset : int
limit : int
}
模型元数据信息
视图层
JSON控制层
GET protocal://ip:port/schema/model/${MODEL_NAME}模型层
| 字段名称 | 字段类型 | 备注 |
|---|---|---|
| NAME | string | 模型名称 |
| COMMENT | string | 模型备注 |
实现
技术选型
完全因为学习,选择了golang,及相关库。
image.png
视图层
基于json
控制层
基于golang的net库
模型
基于第三方组件连接数据库,及使用第三方ORM组件。
项目管理
源码管理
git
持续集成
jenkins
迭代计划
| 阶段 | 任务目标 | 详细描述 |
|---|---|---|
| 1 | 完成基础框架搭建 | mvc处理流程及相关技术组件 |
| 2 | 实现元数据服务 | 元数据基础,属性,主键,索引等服务 |
| 3 | 实现数据服务 | 数据信息,数据统计信息 |
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信2362 次点击
添加一条新回复
(您需要 后才能回复 没有账号 ?)
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传
收入到我管理的专栏 新建专栏
需求
公司要实现大中台战略,以往的后台都是基于传统的技术架构实现的系统。
系统在性能及扩展性上都存在有客观的局限性。
如何将传统系统的原子性服务或组合服务提供给中台是需要解决的一个问题。
概要设计
- 原子性的服务,通过直连数据模型,并将其转化为RESTFULL的方式来实现。
- 组合服务通过接口适配转换及转化为统一RESTFULL的方式来实现。
详细设计
原子性服务设计
- 服务列表
| 服务编号 | 服务名称 | 备注 |
|---|---|---|
| 模型元数据 | schema/base/${MODEL_NAME} | 如果${MODE_NAME}为空,则是全部信息 |
| 模型属性元数据 | schema/prop/${PROP_NAME} | 如果${PROP_NAME}为空,则是全部信息 |
| 模型主键元数据 | schema/primary_key/${PRIMARY_KEY} | 如果${PRIMARY_KEY}为空,则是全部信息 |
| 模型数据 | model/data/${MODEL_NAME} | 如果${MODEL_NAME}为空,则是全部信息 |
| 模型统计 | model/stastic/${MODEL_NAME} | 如果${MODEL_NAME}为空,则是全部信息 |
- 服务参数
- 翻页参数
Pagination {
offset : int
limit : int
}
模型元数据信息
视图层
JSON控制层
GET protocal://ip:port/schema/model/${MODEL_NAME}模型层
| 字段名称 | 字段类型 | 备注 |
|---|---|---|
| NAME | string | 模型名称 |
| COMMENT | string | 模型备注 |
实现
技术选型
完全因为学习,选择了golang,及相关库。
image.png
视图层
基于json
控制层
基于golang的net库
模型
基于第三方组件连接数据库,及使用第三方ORM组件。
项目管理
源码管理
git
持续集成
jenkins
迭代计划
| 阶段 | 任务目标 | 详细描述 |
|---|---|---|
| 1 | 完成基础框架搭建 | mvc处理流程及相关技术组件 |
| 2 | 实现元数据服务 | 元数据基础,属性,主键,索引等服务 |
| 3 | 实现数据服务 | 数据信息,数据统计信息 |