mirror of
https://github.com/hpd840321/starRiverProperty.git
synced 2026-06-09 08:20:31 +08:00
418c7db202
- davinci-manager-storage:FilePart 路径与基址按 V1 JAR(/portal/file、/part/*、GET /download) - 启动类:扫描 cn.cloudwalk.serial 与 cn.cloudwalk.cwos.client.resource,补 UUIDSerial 与 ApplicationService - deploy:v1/v2 application 中 cloudwalk.serial.enabled、Kafka 指向 192.168.3.12:9092;deploy/.gitignore 忽略日志 - cloudwalk-common-serial:补充 META-INF/spring.factories(Boot 自动配置) - 电梯:Session 配置、Davinci Bean、Feign 包、MQTT/Visitor/Zone Feign;部署脚本与 API parity 工具更新 - 文档与根脚本若干;未纳入大体积 jar/zip 与 v1 CFR 对比目录 Made-with: Cursor Former-commit-id: b76d142d13ebb5c0898de2d9d11bc583876829c2
93 lines
4.8 KiB
Markdown
93 lines
4.8 KiB
Markdown
# 电梯应用双版本同路径部署
|
||
|
||
每个发行目录内 **JAR**、**`application.properties`**、**`bootstrap.properties`**(Consul)与 **`redis-override.properties`** 位于**同一目录**。`run.sh` 使用:
|
||
|
||
```bash
|
||
--spring.config.location=file:./application.properties,file:./redis-override.properties
|
||
```
|
||
|
||
(说明见下文:Boot 1.5 下 jar 内 `classpath:/application.properties` 往往最后生效,仅靠外置文件盖不住密码。)
|
||
|
||
## 目录
|
||
|
||
| 目录 | JAR | 端口(见配置首行) |
|
||
|------|-----|-------------------|
|
||
| `v1-legacy/` | `cw-elevator-application-V1.0.0.20211103.jar` | **18080** |
|
||
| `v2-maven/` | `cw-elevator-application-2.0.0.jar` | **18081** |
|
||
|
||
属性文件由历史包 `cw-elevator-application-V1.0.0.20211103/application.properties` 复制而来,仅在各自文件头部增加了 **注释** 与 **`server.port`**,便于双实例并行(对拍 / API 套件)。
|
||
|
||
## 一次性同步 JAR
|
||
|
||
在 **`deploy/`** 下执行(需已存在 V1 原始 JAR;V2 优先用 `releases/v2.0.0/`,否则用 `cw-elevator-application-starter/target/`):
|
||
|
||
```bash
|
||
./sync-jars.sh
|
||
```
|
||
|
||
## 启动(两个终端)
|
||
|
||
```bash
|
||
cd v1-legacy && ./run.sh
|
||
```
|
||
|
||
```bash
|
||
cd v2-maven && ./run.sh
|
||
```
|
||
|
||
探活示例:`curl -s http://127.0.0.1:18080/actuator/health` 与 `18081`。
|
||
|
||
## Consul(`192.168.3.12` Docker)
|
||
|
||
本仓库在 **`v1-legacy/bootstrap.properties`**、**`v2-maven/bootstrap.properties`** 中写入:
|
||
|
||
- `spring.cloud.consul.host=192.168.3.12`
|
||
- `spring.cloud.consul.port=8500`
|
||
|
||
用于覆盖 fat-jar 内 **`10.128.161.95:8500`**,与 **`deploy/consul-docker`**(`hashicorp/consul:1.22`)对齐。在同一目录执行 `./run.sh` 时,Spring Cloud 会加载上述 **`bootstrap.properties`**。
|
||
|
||
验证 Consul:`curl -s http://192.168.3.12:8500/v1/status/leader`。浏览器打开 **`http://192.168.3.12:8500`** 可看 UI。
|
||
|
||
**说明**:jar 内 **Dubbo / ZooKeeper** 仍可能指向旧 IP(如 `10.128.161.95:2181`);若启动报 ZK 连接失败,需在 **`application.properties`** 中另行改 Dubbo 注册中心(本次仅处理 Consul)。
|
||
|
||
### Feign `ninca-crk-std`(Ribbon / Consul)
|
||
|
||
若日志出现 **`Load balancer does not have available server for client: ninca-crk-std`**,表示 **Consul 里没有名为 `ninca-crk-std` 的注册实例**,而 Feign 默认用 **Consul 服务发现**拉实例列表。
|
||
|
||
**做法**:① 在目标环境启动 **`ninca-crk-std`(访客标准服务)** 并注册到同一 Consul;或 ② 在 **`application.properties`** 中使用 **Ribbon 静态列表**(已增加 `ninca-crk-std.ribbon.NIWSServerListClassName` 与 `listOfServers`,默认与 `ninca-crk-std.ip` 一致),把 **`listOfServers`** 改成你实际可访问的 **`主机:端口`**。
|
||
|
||
## Redis 与 `SPRING_APPLICATION_JSON`
|
||
|
||
fat JAR 的 `classpath:/application.properties` 会带内网旧 **host** 与 **password**;在 Spring Boot 1.5 下,同目录的 `application.properties` / `redis-override.properties` 往往**压不过** jar 里同文件(见上节说明)。
|
||
|
||
**当前做法**:`deploy/merge-redis-json.sh` 读取各目录下的 **`redis-override.properties`**,生成一行 **`SPRING_APPLICATION_JSON`**(包含 `spring.redis.host` / `port` / `password`),由 `run.sh` **`export`** 后再启动 JVM,优先级高于打包配置。
|
||
|
||
- 默认已指向 **`redis-override.properties`** 中的地址与口令(若你的环境不一致,直接改该文件)。
|
||
- **临时覆盖口令**:`SPRING_REDIS_PASSWORD='别的密码' ./run.sh`(若设为**空字符串**表示使用无密码 Redis)。
|
||
- 需要 **python3**。
|
||
- **勿把生产口令提交到公开仓库**;团队协作时口令宜走密钥管理,`redis-override.properties` 仅作本机示例。
|
||
|
||
## 修改配置
|
||
|
||
直接编辑对应目录下的 **`application.properties`**(与 JAR 同路径),重启进程生效。
|
||
|
||
## JDK 版本(避免 `InaccessibleObjectException` / CGLIB)
|
||
|
||
历史 JAR 面向 **JDK 8**。本仓库在 **`deploy/common-java.sh`** 顶部用变量 **`DEPLOY_JDK8`** 写死默认路径(当前为 **`/usr/lib/jvm/java-8-openjdk-amd64`**)。换机器请只改这一处,或通过环境变量临时覆盖:
|
||
|
||
`DEPLOY_JDK8=/你的/jdk8 ./run.sh`
|
||
|
||
**默认**:`run.sh` 使用 **`DEPLOY_JDK8`**,**不跟随** Conda 的 `JAVA_HOME`。
|
||
|
||
- 坚持用当前 Shell 里的 Java(如 Conda JDK17):
|
||
`ELEVATOR_USE_ENV_JAVA=1 ./run.sh`
|
||
非 JDK8 时会自动追加 `--add-opens=...`。
|
||
- 额外 JVM:
|
||
`ELEVATOR_JAVA_OPTS="-Xmx512m" ./run.sh`
|
||
|
||
## Shell 脚本换行(若出现 `bash\r`)
|
||
|
||
在 Windows 或某些编辑器下保存成 **CRLF** 会导致 `#!/usr/bin/env bash\r`。仓库根已有 **`.editorconfig`** 约束 `*.sh` 使用 **LF**;若再出现可执行:
|
||
|
||
`find . -name '*.sh' -type f -exec sed -i 's/\r$//' {} +`(在 `反编译` 根目录)
|