Files
starRiverProperty/maven-cw-elevator-application/deploy/README.md
T
反编译工作区 418c7db202 feat(elevator): 对齐 V1 lib 的 Davinci/扫描/事件与部署配置
- 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
2026-04-28 01:02:31 +08:00

93 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 电梯应用双版本同路径部署
每个发行目录内 **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$//' {} +`(在 `反编译` 根目录)