开发指南-后端 2024年7月4日创建 1.环境介绍 1.应用对外域名https://www.dev.ic deas.cnpo 2.应用线上部署环境是瑞道云容器平台,点击这里访问 3.JDK版本要求:jdk17,点击这里下载 5.本地开 需要将kt-co nect启动,才可以访问数据库 redis等线上中间件,同时也可以访问线上部署的微 服务。下图是访问应用的3种方式,第一种适合服务间相互调用,第二种适合前后端联调,第三种适合最终用户 瑞道云(容器平台) 例后端应用 本机开发环境 端道云域名网关 2.私服地址 协同开发子系统->应 01exampl 6.3单体应用 当前的“单体应用”是相对狭义的,指的是前后的都在一 体应用的命名规则如下: 分类 应用名称 示例应用后端 说明 应用编码 4201example-app 后缀必须是-app 结尾, 数字编码规则 参考目工程命名规范 系统编码 开发的应用所属子系统的编码 瑞道云 负载编码 ideas2-5201example-app 格式为:系统编码+应用编码 服务名称 example-app 服务名称不带数字 用户访问地址 http://ww.c pc/exmaple 路径格式:服务名称去除-app 后缀 ? 应用 路径前缀 路径格式:服务名称去除-app 后缀 后端地址通常为:/example/api/** 前端地址通常为:/exam 6.4 GIT 在简单场景下,可以只有两个分支:develop和 master 以下是环境和代码分支的关系,制品晋级方式参考目应用部署手册: 环境 分支 说明 开发环境 develop、feature/xxx、 hotfxxx 不稳定分支 测试环境 master、标签 V1.x.X 稳定分支或标签 预生成环境 从测试制品库晋级过来 生产环境 从预生产制品库晋级过来 全局配置 6.5数据库 1.常用的数据库字段命名参考 字段编码 字段类型 描述 create_ time update_time timestamp ##date date 日期相关命名,格式:yy-M-dd create_user_id varchar 创建用户Id varchar 创建用户姓名 Varchar 创建用户## p!lisn-ajepdn varchar 最后更新用户Id aweu lasn-alepdn varchar 最后更新用户姓名 ###JasnTajepdn varchar 最后更新用户## 2.常用的字段取值参考 字段名 字段类型 参考值 启用状态 int 启用=0 字典启用状态 停用=1 管理员类型 int 应用管理员=0 文件服务管理员类型 系统管理员=1 6.6 Redis命名 Redis 的键必须添加应用前缀标识,比如 4205govern 项目要缓存用户信息到 Redis,则命名规则如下: 应用名 Redis 的键前缓 键示例 4205govern: 4205gov Isers:(用户ID} 6.7API参数命名 参数名 说明 ##Like 模糊查询时使用,比如 nameLike keyword 进行多个字段检索时使用,比如使用keywrd同时检索名称和编码 7.配置中心 详细说明文档 目udp-config-encryption-startr 配置文件加解密(已经合并到web-starter) 7.1配置中心 配置中心的技术栈是 springcloudconfig+git,使用这个技术栈的原因可以参考目配置中心选型,项目使用配置中 心进行开发,需要以下步骤: 1.启动安全桌面 2.启动 kt-connect 3.访问配置中心 http://itea:3000 4.注册账号 7.2加密数据 : static void main(String[] args) throw String base64Key = "xx" System.out.println(m 7.3密文配置 配置文件中心配置加密后的敏感 包取 q:5672 wpe :aweu password: KLldCipher[这里写密文] 7.4 IDEA配置 将密钥信息添加到 JVM Options中, 格式为: -Dkld.cofigalgrithm=sma -Dkld.configkey×x 在启动kt-connect 后,可以从系统环境变量KLD_cONFIG_KEY中获取到 kld.config.key 密钥配置方式如下图: 1.编辑配置 spriAgtiv 3.输入密钥信息 Run/Debug Configurations ApP CApP Run on: Local Manage trgets. 8.健康检查 健康检查一般用于应用滚动更新,具体配置参考 目容器探针设计 9.常见问题 9.1 容器中访问HTTPS域名 1. 针对 springboot 项目,将此 Dockefile文件放到项目根目录下 注意:执行 import-jidk-certs.sh 必须使用 root 权限,不要添加 USER app 指令 a. JDK17 ENV JAVA_OPTS=-XX:+UseCon ENV RUN_ARGS=" duse 6.JKD8 ENV JAVA_OPTS= ENV RUN_ARGS=I COPY ta CMD ["sh", -c 'java -jar ${ 2.编辑负载配置,添加JDK_CERT_URLS变量,指向证书下载地址,多个地址使用逗号分割,比如 JDKCERU=htp//:0/share/mis/deapccrt,t:/s:0/share/is/devidea 9.2 本地开发访问HTTPS域名 1.下载以下三个证书文件到任意目录 集成开发应用支撑系统的HTTPS域名证书 说明 dev.ideas.cnpc.crt 这个是开发环境的证书 ideas.cnpc.crt 测试、预生产、生产环境使用的是同一 _.ideas.cnpc.crt 这个是MinlO的证书 2.在证书下载目录下执行导入命令-JDK17 "d:\jdki7\lib\security\cacerts" -storepass changeit -noprompt 4导入集成开发应用支撑系统的测试、预生产、生产环境证书 5 keytool -import -alias ideas.cnpc -file "ideas.cnpc.crt "d:\jdk17\lib)security\cacerts" -storepass changeit -noprompt 注意:1、执行命令前检查环境变量Path中需包含你现使用idk的bin目录 2、d:jidk17是本文档编辑人本机的JDK地址,实际操作时使用你本地的JDK地址 3、JDK 密钥库口令是 changeit 3. 在证书下载目录下执行导入命令 - JDK8 "d:\jdk8\jre\lib\security\cacerts" -storepass changeit -noprompt 4#导入集成开发应用支撑系统的测试、预生产、生产环境证书 5 keytool -import -alias ideas.cnpc -file "ideas.cnpc.crt "d:\jdk8\jre\lib\security\cacerts" -storepass changeit -noprompt 注意:1、执行命令前检查环境变量Path中需包含你现使用idk的bin目录 2、d:Vidk8是本文档编辑人本机的JDK地址,实际操作时使用你本地的JDK地址 3、libsecuritylcacerts 是jdk下的jre目录,不是单独的jre 4、JDK 密钥库口令是 changeit 9.3 git报ssl错误 ? 禁用 ssl验证 9.4变更git地址 :通过更新配置文件变更指向的远程git仓库地址 第一 种方式: 第二种方式:通过命令行变更 9.5配置数据库schema pguse nection-in Kt-connect 启动后,会自动将配置文件密钥信息写入到系统环境变量中,变量名称是: KLD_CONFIG_ALGORITHM、KLD_CONFIG_KEY,变量写入后,IDE需要重启,才能读取到环境变量,如果不想重 启,可以将密钥信息添加到 JVMOptions 中,格式为:-Dkld.cofigalgorthm=x-Dkd.configkey=x,如下图: 编辑配置 ? 2.显示 VM Optoins 输入框 √ Active 3.输入密钥信息 ApP Local Manage targets. Build and run 9.7 redis 连接失败 问:在jvm中设置kt的socks代理,连接依然失败 答:springcloud中的redis默认不会使用jvm中设置的代理,需要手动读取,以下是4201example 中配置的代码 io.lettuce io.lettuce.core 11l import javanet.InetSocketAddess; 16 @0verride public void customize(ClientResources.Builder builder) socksProxyPort = Integer channel.pipeline(); pipeline .addFirst(handler); 需要在 pom.xml中添加这个依赖,Socks5ProxyHandler在此依赖中: versi 5 9.8找不到这样的主机:redis或sql-proxy 问:连接了kt,并在jvm中设置了kt的socks代理,但是启动时找不到这样的主机:redis或sql-proxy 答:修改本地host文件,增加以下配置 211.96.135.145 sql-pre 9.9 信任 nexus 证书 安全桌面访问htps:/dvcloud.cnpc:8081私服下载不了jar包的一个解决办法,自己测试有效 注意:所有操作都在安全桌面外操作!! (1)首先浏览器访问htp:/devcloud.cnpc:8081,参看下图点击浏览器安全设置图标,找到【导出】按钮,导出 devcloud.cnpc.crt证书文件 (2)将证书导入jdk的证书库 会提示输入密钥库 默认changeit 会提示是否信任此证书,输入是 9.10 maven 忽略https验证 环境变量方式 命令行方式 9.11maven构建报错 可以尝试以下几个步骤修复: 1.通过环境变量忽略 https 验证 2.设置.m2/settings.xml 文件 3.在命令行执行n nvn cleanpackage-e-U ERROR import POM:The o.prc ERROR org.sp for cnpc.kld.fr 10.相关文档 目后端高码框架用户手册说明文档 目应用部署手册 目工程命名规范 回工程台账 目数据变更通知服务 建设中。。。 建设中。 建设中。.。 建设中。。。 反向引用(2)@ 本文引用(9) 需求调研清单 需求调研清单 ?