Initialize 初始化微服务
介绍
Initialize 微服务负责在初始化数据、检测新版本或新的配置、获取应用的相关配置信息、系统区域数据、系统标签数据等其它应用相关数据。
源码仓库
https://git.apinb.com/bsm-service-base/initialize
安装
要安装 Initialize 初始化微服务,请确保您已经安装了 bsm cli, 安装命令如下:
bash
bsm install initialize
配置文件说明
在 etc/
目录中,根据dev,test,prod环境不同读取不同的配置文件,通过配置微服务决定是否启用相关服务,例如:
initialize_prod.yaml
yaml
Name: {ServiceKey}
ListenOn: 0.0.0.0:12202
Dsn: postgres://postgres:******@127.0.0.1:5432/{Workspace}_prod?sslmode=disable&TimeZone=Asia/Shanghai
# cache DB的选择请在后面直接带参数,不带会自动HASH计算选择DB库。
Cache: redis://null:******@127.0.0.1:6379/
Etcd:
Hosts:
- 127.0.0.1:2379
Key: service.{Workspace}.{ServiceKey}.rpc
# 匿名访问清单,自动注入网关层
Anonymous:
Key: anonymous.{Workspace}
Urls:
- initialize.Check.Hello
- initialize.Check.Updates
- initialize.Data.Configure
- initialize.Data.Areas
- initialize.Data.Tags
# 日志记录, 注释将不启用此功能
Log:
ServiceName: {ServiceKey}
Mode: file
Path: logs/{ServiceKey}
Stat: false
# 性能监控, 注释将不启用此功能
Prometheus:
Host: 127.0.0.1
Port: 22202
Path: /metrics
# 链路追踪, 注释将不启用此功能
Telemetry:
Name: {Workspace}.{ServiceKey}.{RuntimeMode}
Endpoint: http://127.0.0.1:14268/api/traces
Sampler: 1.0
Batcher: jaeger
# MQ Pulsar, 不启用
#Pulsar:
# Endpoints: 127.0.0.1
# Token: 9091
# Namespaces: {Workspace}
管理微服务
使用以下命令管理微服务:
bash
bsm start/restart/update initialize
API 接口说明
检测是否有新版或新的配置
POST /initialize.Check.Updates
Body 请求参数
json
{
"app": "ut occaecat sit Duis proident",
"os": "consequat laborum velit reprehenderit",
"arch": "exercitation sit reprehenderit in amet",
"version": "minim ullamco"
}
请求参数
名称 | 位置 | 类型 | 必选 | 中文名 | 说明 |
---|---|---|---|---|---|
Request-Id | header | string | 是 | 请求ID | |
Content-Type | header | string | 是 | 传输格式 | |
Workspace | header | string | 是 | 项目名称 | |
Authorization | header | string | 否 | 用户通行证Token | |
body | body | object | 否 | none | |
» app | body | string | 是 | 应用程序名称 <必填> | 应用程序名称 |
» os | body | string | 是 | 操作系统 <必填> | 操作系统 |
» arch | body | string | 是 | 构架名称 <必填> | 构架名称 |
» version | body | string | 是 | 版本号 <必填> | 版本号 |
返回示例
200 Response
json
{
"identity": "string",
"version": "string",
"summary": "string",
"files": "string",
"pubdate": "string"
}
返回结果
状态码 | 状态码含义 | 说明 | 数据模型 |
---|---|---|---|
200 | OK | none | Inline |
返回数据结构
状态码 200
名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
---|---|---|---|---|---|
» identity | string | true | none | 唯一标识 | 0为未找到相应版本 |
» version | string | true | none | 版本号 | 0为未找到相应版本 |
» summary | string | true | none | none | |
» files | string | true | none | none | |
» pubdate | string | true | none | none |
获取应用的相关配置信息
POST /initialize.Data.Configure
Body 请求参数
json
{
"app": "milu",
"os": "windows"
}
请求参数
名称 | 位置 | 类型 | 必选 | 中文名 | 说明 |
---|---|---|---|---|---|
Content-Type | header | string | 是 | none | |
Request-Id | header | string | 是 | 请求ID | |
Workspace | header | string | 是 | 项目名称 | |
Authorization | header | string | 否 | 用户通行证Token | |
body | body | object | 否 | none | |
» app | body | string | 是 | 应用程序名称 <必填> | 应用程序名称 |
» os | body | string | 是 | 操作系统 <必填> | 操作系统 |
返回示例
200 Response
json
{}
返回结果
状态码 | 状态码含义 | 说明 | 数据模型 |
---|---|---|---|
200 | OK | none | Inline |
返回数据结构
状态码 200
empty object
名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
---|
获取系统区域数据
POST /initialize.Data.Areas
Body 请求参数
json
{}
请求参数
名称 | 位置 | 类型 | 必选 | 中文名 | 说明 |
---|---|---|---|---|---|
Content-Type | header | string | 是 | none | |
Request-Id | header | string | 是 | 请求ID | |
Workspace | header | string | 是 | 项目名称 | |
Authorization | header | string | 否 | 用户通行证Token | |
body | body | object | 否 | none | |
» is_town | body | boolean | 否 | 是否列出乡镇数据,【开关】 |
返回示例
200 Response
json
{
"areas": [
{
"id": "string",
"pid": "string",
"deep": 0,
"name": "string",
"pinyinPrefix": "string",
"pinyin": "string",
"extId": "string",
"extName": "string"
}
]
}
返回结果
状态码 | 状态码含义 | 说明 | 数据模型 |
---|---|---|---|
200 | OK | none | Inline |
返回数据结构
状态码 200
empty object
名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
---|---|---|---|---|---|
» areas | [object] | true | none | 区域数据数组 | |
»» id | string | true | none | none | |
»» pid | string | true | none | none | |
»» deep | integer | true | none | none | |
»» name | string | true | none | none | |
»» pinyinPrefix | string | true | none | none | |
»» pinyin | string | true | none | none | |
»» extId | string | true | none | none | |
»» extName | string | true | none | none |
获取系统标签数据
POST /initialize.Data.Tags
Body 请求参数
json
{}
请求参数
名称 | 位置 | 类型 | 必选 | 中文名 | 说明 |
---|---|---|---|---|---|
Content-Type | header | string | 是 | none | |
Request-Id | header | string | 是 | 请求ID | |
Workspace | header | string | 是 | 项目名称 | |
Authorization | header | string | 否 | 用户通行证Token | |
body | body | object | 否 | none |
返回示例
200 Response
json
{
"tags": [
"string"
]
}
返回结果
状态码 | 状态码含义 | 说明 | 数据模型 |
---|---|---|---|
200 | OK | none | Inline |
返回数据结构
状态码 200
empty object
名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
---|---|---|---|---|---|
» tags | [string] | true | none | 标签数据数组 |
hello
POST /initialize.Check.Hello
Body 请求参数
json
{}
请求参数
名称 | 位置 | 类型 | 必选 | 中文名 | 说明 |
---|---|---|---|---|---|
Request-Id | header | string | 是 | 请求ID | |
Content-Type | header | string | 是 | 传输格式 | |
Workspace | header | string | 是 | 项目名称 | |
Authorization | header | string | 否 | 用户通行证Token | |
body | body | object | 否 | none |
返回示例
200 Response
json
{
"Code": 0,
"Data": {
"identity": "string",
"status": "string",
"message": "string",
"timeseq": "string"
}
}
返回结果
状态码 | 状态码含义 | 说明 | 数据模型 |
---|---|---|---|
200 | OK | none | Inline |
返回数据结构
状态码 200
名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
---|---|---|---|---|---|
» Code | integer | true | none | none | |
» Data | object | true | none | none | |
»» identity | string | true | none | none | |
»» status | string | true | none | none | |
»» message | string | true | none | none | |
»» timeseq | string | true | none | none |