1. 部署逻辑:
在没有dice底座的环境上部署trantor,需要注意如下:
- 在非dice上,参数配置不能通过addon的形式加入,因此均需要用户通过配置参数的形式注入。
- 需要使用trantor-geteway作为网关。
- Meta_store_management和meta_store 注册到不用的nacos上去,nacos和网关需要两套。
- 部署的各个服务配置项均需要设置DISCOVERY_ENABLE_NACOS为true。
2. 公用部署
| key | 注意事项 |
|---|
| MySQL | |
| DataStore | 注册到meta_store对应的nacos |
3. console相关部署
| key | 注意事项 |
|---|
| gateway(API 网关1) | |
| Nacos(注册中心1) | 只给Meta_store_management使用 |
| 交付控制台前端 | |
| Meta_store_management | 设置DUBBO_ENABLED为false,配置DS_HOST和DS_PORT,与ds使用http请求 |
4. Workspace相关部署
| key | 注意事项 |
|---|
| gateway(API 网关2) | 为了避免出现oom,可以配置java_opts |
| Nacos(注册中心2) | 给meta_store和各个业务使用 |
| 统一工作台前端 | |
| meta_store | |
5. 服务依赖项
| 部署项 | 必要依赖 | 可选依赖 |
|---|
| 交付控制台前端/后端 | API 网关、注册中心、DataStore | RocketMQ、Redis、ACL、User Center、Notice |
| 统一工作台前端/后端 | API 网关、注册中心、DataStore | RocketMQ、Redis、ACL、User Center、Notice |
| DataStore | MySQL、注册中心 | RocketMQ、Redis |
提醒:
-
RocketMQ、Redis、Notice 如果需要,请提前部署。
-
ACL、User Center 为公司其余业务产品,分别是功能权限和用户的功能,请联系相关团队提前部署。
6. 环境变量
6.1 交付控制台/统一工作台 通用
| key | value | 是否必填 | 注释 |
|---|
| META_STORE_URL | String | 是 | Meta Store 服务的访问地址,一般为 API Gateway 中注册的地址,获取见微服务治理->api网关,如(dev-gateway.app.terminus.io/zssk/trantor-console/meta-store) |
| GATEWAY_URL | String | 是 | 所在环境的 API Gateway 地址,如(dev-gateway.app.terminus.io) |
| GATEWAY_PREFIX | String | 是 | 所在环境的 API Gateway 地址,如(/zssk/trantor-console) |
| DISCOVERY_ENABLE_NACOS | Boolean | 是 | 注册到nacos |
| ADDRESS_CACHE | LOCAL / REDIS | 否 | 地址缓存方式,默认为 LOCAL |
| DS_PROJECT_ID | String | 否 | DataStore 中的租户,对应到 MySQL 的一个逻辑库,默认trantor |
| DS_SUBSCRIBE | Boolean | 否 | 是否订阅 DataStore 消息,依赖 MQ,默认false |
| DUBBO_ENABLED | Boolean | 否 | 调用DataStore是否开启Dubbo服务,默认false |
| DS_HOST | String | 否 | 当DUBBO_ENABLED为false时,从http调用DataStore |
| DS_PORT | String | 否 | 当DUBBO_ENABLED为false时,从http调用DataStore |
| USER_MOCK | Boolean | 否 | 是否开启 user center mock,默认false |
| UC_FRONT_URL | String | 否 | 取决是否开启USER_MOCK,依赖 User Center 服务实例 |
| UC_FRONT_INNER_URL | String | 否 | User Center 自身内部调用地址 |
| LOGIN_SHARE_COOKIE_NAME | String | 否 | uc的token-key,取决是否开启USER_MOCK |
| COOKIE_DOMAIN | String | 否 | 取决是否开启USER_MOCK |
| UC_PROTOCOL | String | 否 | 取决是否开启USER_MOCK |
| ACL_MOCK | Boolean | 否 | 是否开启 acl mock,默认false |
| ACL_CLIENT_HOST | String | 否 | 取决是否开启ACL_MOCK |
| ACL_ADMIN_HOST | String | 否 | 取决是否开启ACL_MOCK |
| ACL_SYNCURL | String | 否 | 可不填 |
| TRANTOR_EVENT_ENABLED | Boolean | 否 | 是否开启事件,依赖 MQ |
| OSS_HOST | String | 否 | OSS 相关配置,目前只支持阿里云 OSS,默认 |
| OSS_REGION | String | 否 | OSS 相关配置 |
| OSS_AK | String | 否 | OSS 相关配置 |
| OSS_AS | String | 否 | OSS 相关配置 |
| OSS_TIMEOUT | Int | 否 | OSS 相关配置 |
| OSS_ARN | String | 否 | OSS 相关配置 |
| OSS_ROLE | String | 否 | OSS 相关配置 |
| SERVER_BUCKET | String | 否 | OSS 相关配置 |
| OSS_STS_ENABLED | Boolean | 否 | OSS 相关配置 |
| JAVA_OPTS | String | 否 | java启动配置 |
6.2 交付控制台
| key | value | 是否必填 | 注释 |
|---|
| DEPLOYMENT_MODE | STANDALOAN / INTEGRATION | 是 | 部署模式,集成部署或者独立部署,默认INTEGRATION,一般填写 STANDALOAN |
| TENANT_ENABLE | Boolean | 是 | 是否启用多租户功能,dice上使用true |
6.3 统一工作台
| key | value | 注释 |
|---|
| SLAVE_ACCESSKEY | String | 必填,访问凭证,与跟交付控制台环境上的配置相同即可 |
6.4 DataStore
| key | value | 是否必填 | 注释 |
|---|
| REDIS_HOST | String | 否 | Redis地址(部署多个DS节点时需要配置) |
| REDIS_PORT | String | 否 | Redis端口(部署多个DS节点时需要配置) |
| REDIS_PASSWORD | String | 否 | Redis密码(部署多个DS节点时需要配置) |
| API_LOG_LEVEL | String | 否 | DML请求日志级别(debug,info,warn,error),默认info |
| TX_LOG_LEVEL | String | 否 | 事务日志级别 |
| SQL_LOG_LEVEL | String | 否 | 真实执行的SQL日志级别(只有debug级别才会打印所有SQL到控制台) |
| MQ_LOG_LEVEL | String | 否 | MQ消息日志级别 |
| ES_LOG_LEVEL | String | 否 | ES请求日志级别 |
| GQL_LOG_LEVEL | String | 否 | GQL请求日志级别 |
| SQL_API_LOG_LEVEL | String | 否 | SQL API日志级别 |
| HIKARI_LOG_LEVEL | String | 否 | 连接池日志级别 |
| DB_DATABASE | String | 否 | DS元信息库名称,默认autumn |
| DB_HOST/MYSQL_HOST | String | 是 | DS元信息库地址 |
| DB_PORT/MYSQL_PORT | String | 是 | DS元信息库端口 |
| DB_USERNAME/MYSQL_USERNAME | String | 是 | DS元信息库用户名 |
| DB_PASSWORD/MYSQL_PASSWORD | String | 是 | DS元信息库密码 |
| MIN_CONNECTION | Integer | 否 | DS元信息库最小连接池大小(默认2) |
| MAX_CONNECTION | Integer | 否 | DS元信息库最大连接池大小(默认10) |
| CONNECTION_TIMEOUT | Integer | 否 | 最大连接池等待时间(默认600000) |
| MAX_LIFE_TIME | Integer | 否 | 连接池空闲连接最大存活时间(默认30000) |
| MIN_POOL_SIZE | Integer | 否 | 业务库最小连接池大小(默认5) |
| MAX_POOL_SIZE | Integer | 否 | 业务库最大连接池大小(默认50) |
| DDL_FORMAT | String | 否 | DS模型表字段DDL格式,默认CAMELCASE,可选UNDERSCORE |
| MAX_ALLOW_ROW_SIZE | Integer | 否 | 单条SQL可允许的最大结果集条数,默认100万,小于等于0则不限制 |
| DEPLOY_LOCK_TIMEOUT | Integer | 否 | 模型发布锁超时时间,单位分钟,默认10分钟 |
| DEPLOY_AUTO_CLEANUP_METADATA_SIZE | Integer | 否 | 元信息历史记录保留数量,默认50条,防止元信息表过大 |
| SEARCH_ENABLE | boolean | 否 | 是否开启搜索模型 |
| SEARCH_URL | String | 否 | 搜索服务URL,SEARCH_ENABLE为true时必填 |
| GLOBAL_SEARCH_ENABLE | boolean | 否 | 是否开启全局搜索功能,默认为false |
| ELASTICSEARCH_HOST | String | 否 | ElasticSearch Host, SEARCH_ENABLE为true时必填 |
| ELASTICSEARCH_PORT | Integer | 否 | ElasticSearch Port, SEARCH_ENABLE为true时必填 |
| ELASTICSEARCH_NAME | String | 否 | ElasticSearch Name, SEARCH_ENABLE为true时必填 |
| ELASTICSEARCH_SECRET | String | 否 | ElasticSearch Secret, SEARCH_ENABLE为true时必填 |
| CLUSTER_NAME | String | 否 | ElasticSearch Cluster Name, SEARCH_ENABLE为true时必填 |
| SUBSCRIBE | boolean | 否 | 是否开启消息订阅,默认false,开启之后订阅的模型如果发生变更会发送消息,如果开启则MQ_SERVER_ADDRESS必须配置 |
| MQ_SERVER_ADDRESS | String | 否 | MQ地址,SUBSCRIBE为true时必填 |
| CLIENT_TYPE | String | 是 | MQ类型:ROCKETMQ,ONS。SUBSCRIBE为true时必填 |
| ALIYUN_ACCESSKEY | String | 否 | 阿里云ONS Accesskey, CLIENT_TYPE为ONS时必填 |
| ALIYUN_SECRETKEY | String | 否 | 阿里云ONS Sercret, CLIENT_TYPE为ONS时必填 |
| DUBBO_ENABLED | boolean | 否 | 是否开启dubbo,默认true |
| DUBBO_VERSION | String | 否 | dubbo接口版本,默认1.0.0 |
| DUBBO_MAX_PAYLOAD | Integer | 否 | dubbo接口最大返回数据量大小,默认8388608 |
6.4.1 注意事项
-
DS部署多个节点时,必须要配置Redis,否则会造成DS节点间本地缓存不一致问题,该问题业务上出现多次部署DS多节点没有依赖Redis导致的问题。
-
开启DS消息订阅时,必须要配置MQ,DS通过MQ发送模型变更消息。
-
生产环境配置添加或修改时建议添加配置review流程,防止配置错误导致问题。如某项目生产环境出现了某个模型有时候能查询,有时候查询报错问题,经排查是DS节点间元信息缓存不一致导致的,进一步排查发现该项目DS的REDIS_HOST配置错误,VALUE值也配成了REDIS_HOST,属于比较低级的错误。