# V8服务部署架构图及阶梯资源推荐手册
2025年1月
本文针对服务器环境准备相关事宜进行说明,提供V8产品各种服务的配置关系,针对不同并发用户提供服务器配置参考,供项目准备使用。 V8平台是基于前后端分离、云原生技术实现的新一代协同管理平台。 V8平台前端采用React、微前端,后端采用SpringBoot、Dubbo RPC、微服务实现的平台。 V8平台采用无状态、容器化,支持线性扩展、多租户、多云适配等特征。
# 基准要求&常识
本手册提供的资源方案作为新项目、升级项目基准参考,不同客户数据和环境不同,在运行过程中需要根据实际情况去动态调配。
基准要求:服务器资源 > 产品应用占用的资源(建议占总资源的70%以内),会导致操作系统自己申请不到内存而主动崩溃。
基准要求:原则上推荐所有数据库和中间件分离部署(一台服务器安装一个服务),以达到更好的运维治理和问题分析排查。
基准要求:如项目存在特殊性,只能集中部署(一台服务器中间件一起运行),需要注意基本常识:服务器总内存 × 70% 不要让中间件总内存占满服务器!
# 系统拓扑图(示例)
# 简单部署(示例)
# 技术架构(示例)
前后端分离
微服务架构
统一网关服务
集群高可用中间件
基于K8S容器化运行
统一DevOps体系
智能运维监控
# 外部服务依赖清单
# 微服务清单
# 微服务部署资源配置
# 微服务部署最小资源(POC)
# 数据库配置说明
数据库类型 | varchar使用限制 | 大小写敏感处理 | 字符集问题处理 | 隔离级别问题处理 | 大字段问题处理 | in语句限制 | 索引组织表问题 |
---|---|---|---|---|---|---|---|
MySQL | - 默认为字符长度 - 单字段上限:16383字符 - 表所有字段总长度≤65535字节 | - 默认敏感 - 配置: lower_case_table_names=1 (不敏感) | - 5.7默认latin1 - 需配置: character-set-server=utf8mb4 collation-server=utf8mb4_general_ci init_connect='SET NAMES utf8mb4' | - 默认REPEATABLE-READ - 需配置: transaction_isolation=READ-COMMITTED | - 不可有默认值 - 不可作为WHERE/ORDER BY/GROUP BY条件 | 无限制(受max_allowed_packet=64M 限制) | 默认索引组织表 |
TiDB | - 默认为字符长度 - 单字段上限:16383字符 | - 默认不敏感(lower_case_table_names=2 ) | 默认utf8mb4 | 默认REPEATABLE-READ | 无限制(受max_allowed_packet=64M 限制) | 5.0+需开启:tidb_enable_clustered_index=on | |
Oracle | - varchar2 按字节,varchar2(n char) 按字符- STANDARD模式:4000字节上限 - EXTENDED模式:32767字节(需升级,默认按4000字节处理) - 超1333字符需转CLOB | 默认不敏感 | 安装时选AL32UTF8 | 默认READ-COMMITTED | 限制1000条 | 默认堆表 | |
SQLServer | - varchar 按字节(8000字节)- nvarchar 按字符(4000字符)- varchar(max) :2GB- nvarchar(max) :2GB | 默认不敏感 | 创建实例选Chinese_PRC_CI_AS | 需修改为read committed snapshot:sql<br>ALTER DATABASE db_name SET SINGLE_USER WITH ROLLBACK IMMEDIATE;<br>ALTER DATABASE db_name SET ALLOW_SNAPSHOT_ISOLATION ON;<br>ALTER DATABASE db_name SET READ_COMMITTED_SNAPSHOT ON;<br>ALTER DATABASE db_name SET MULTI_USER;<br> | 限制50000条 | 默认堆表 | |
PostgreSQL | - 默认为字符长度 - 上限10MB | 默认不敏感 | 初始化指定-E UTF-8 | 默认READ-COMMITTED | 无限制(数据包限制1GB) | 默认堆表 | |
达梦 | - 默认按字节长度 - 需初始化指定 LENGTH_IN_CHAR=1 (转字符长度)- 上限8188字符 | - 默认敏感 - 需初始化指定 CASE_SENSITIVE=0 (不敏感) | - 默认GBK18030 - 需初始化指定 CHARSET=1 (UTF-8) | 默认READ-COMMITTED | 限制2048条 | - 默认索引组织表 - 需关闭 PK_WITH_CLUSTER=0 (否则无法添加CLOB字段) | |
人大金仓 | - 默认为字符长度 - 上限10MB | - 默认敏感 - 需初始化指定 case_insensitive=off (不敏感) | 安装时选UTF-8 | 默认READ-COMMITTED | 无限制(数据包限制1GB) | 默认堆表 |
# 注意:有些配置是创建数据库的时候初始化的,后期无法修改
# 数据库及中间件配置检查
数据库的详细配置检查请参照上一节
1、kakfa 是否能自动创建Topic
(如果不能自动创建,请获取[下载附件](https://hwbj4-v5yanfa-openplatform-obs-prod-openplatform-001.obs.cn-north-4.myhuaweicloud.com:443/2025/03/03/33e50aa8-4376-4f56-96d6-204e1b40378a.txt?AccessKeyId=W8DHEMWLKB5BKNOLCD8I&Expires=1776983186&Signature=LWb9Pm7FEXXIa2Cy9U1E09naoBA%3D))
2、elasicsearch 是否安装IK插件
3、从k8s node节点到各服务端口是否通 (下面是默认端口,以实际提供端口为准,可以使用"ssh -v ip -p 端口" 或 "nc -zv ip 端口" 进行端口检测)
如果k8snode节点到各服务的网络通,但是启动服务还是报超时,请测试pod到各服务网络是否通(有客户防火墙或者安全组只开放了nodeIP,没开放pod的网段会导致服务器是通的,但是pod不通)
1. mysql 3306端口
2. kakfa 9092端口
3. redis 6379端口
4. minio api端口9000
5. nacos 8848 9848端口
6. elasticsearch 9200端口
7. Clickhouse 8123端口
8. maven仓库nexus的8082端口
9. docker仓库harbor的80端口,或者443端口
10. gitlab的80端口
11. nginx 80端口
4、浏览器可以访问到nacos的8848端口,nexus的8082端口,gitlab的80端口,nginx的80端口,minio web访问端口5000
5、中间件服务之间端口是否通
5.1. nginx到k8s node节点32760,32761 网关端口是否通,nginx到minio的9000端口是否通
编撰人:het、yangfc、liujun
快速跳转
← 程序版本 COP-V8单体部署环境准备 →
