QAUP_Management/adxp-adapter/README.md

4.5 KiB
Raw Blame History

ADXP SDK Adapter Service

ADXP 数据中台 SDK 适配器服务 - 基于 JDK 8 运行的独立微服务

新架构特性ADXP主动连接

🔄 适配器主动连接架构

  • 启动即连接: 适配器服务启动时自动连接到ADXP数据中台
  • 无需登录接口: 移除 /login 端点,由适配器自动管理认证
  • 连接状态管理: 提供 /status/reconnect 端点进行连接管理
  • WebSocket实时推送: 支持实时向客户端推送航班消息
  • 健康监控: 内置连接状态监控和自动重连机制

功能特性

将青岛机场数据中台 SDK (adxp-client-2.6.9.jar) 封装为 REST API 服务,解决 SDK 与现代 Java 版本的兼容性问题。

技术栈

  • Java: JDK 8
  • 框架: Spring Boot 2.7.18
  • 构建: Maven
  • 容器化: Docker

快速开始

方式1Docker Compose推荐

# 1. 构建并启动服务
docker compose up -d

# 2. 查看日志
docker compose logs -f

# 3. 停止服务
docker compose down

API接口ADXP主动连接架构

获取连接状态

GET /api/adxp/status

返回当前ADXP数据中台的连接状态和会话信息。

强制重连

POST /api/adxp/reconnect

强制断开当前连接并重新连接ADXP数据中台。

获取消息接口

GET /api/adxp/messages

使用当前活动连接获取ADXP数据中台的航班消息。

断开连接接口

POST /api/adxp/disconnect

主动断开与ADXP数据中台的连接。

健康检查

GET /api/adxp/health

检查适配器服务健康状态和ADXP连接状态。

WebSocket实时推送

ws://localhost:8086/ws/flight-notifications

实时接收来自ADXP数据中台的航班消息推送。

1. 登录

POST /api/adxp/login
Content-Type: application/json

{
  "username": "dianxin",
  "password": "dianxin@123"
}

响应:

{
  "success": true,
  "sessionId": "550e8400-e29b-41d4-a716-446655440000",
  "message": "登录成功"
}

2. 接收消息

GET /api/adxp/messages?sessionId=550e8400-e29b-41d4-a716-446655440000

响应:

{
  "success": true,
  "messages": [
    {
      "serviceCode": "ARR",
      "actionCode": "ADD",
      "content": "<xml>...</xml>"
    }
  ],
  "message": null
}

3. 登出

POST /api/adxp/logout
Content-Type: application/json

{
  "sessionId": "550e8400-e29b-41d4-a716-446655440000"
}

4. 健康检查

GET /api/adxp/health

响应:

{
  "status": "UP",
  "activeSessions": 1
}

快速测试

API调用示例

1. 检查连接状态

curl http://localhost:8086/api/adxp/status

2. 强制重连

curl -X POST http://localhost:8086/api/adxp/reconnect

3. 获取消息

curl http://localhost:8086/api/adxp/messages

4. 断开连接

curl -X POST http://localhost:8086/api/adxp/disconnect

5. 健康检查

curl http://localhost:8086/api/adxp/health

配置说明

环境变量

变量名 说明 默认值
ADXP_HOST ADXP 数据中台主机地址 localhost
ADXP_PORT ADXP 数据中台端口 7001
ADXP_USERNAME ADXP 用户名 dianxin
ADXP_PASSWORD ADXP 密码 dianxin@123

application.yml

adxp:
  host: ${ADXP_HOST:localhost}
  port: ${ADXP_PORT:7001}
  username: ${ADXP_USERNAME:dianxin}
  password: ${ADXP_PASSWORD:dianxin@123}

部署说明

开发环境

# 1. 启动适配器(默认指向 localhost
docker compose up -d

生产环境

# 1. 创建环境变量文件
cat > .env << EOF
ADXP_HOST=10.10.10.100  # 真实数据中台 IP
ADXP_PORT=7001          # 真实数据中台端口
ADXP_USERNAME=dianxin   # 真实数据中台用户名
ADXP_PASSWORD=dianxin@123 # 真实数据中台密码
EOF

# 2. 启动服务
docker compose up -d

开发说明

项目结构

adxp-adapter/
├── pom.xml               # Maven 配置
├── Dockerfile            # Docker 镜像定义
├── docker-compose.yml    # Docker Compose 配置
├── libs/                 # 数据中台 SDK
│   ├── adxp-client-2.6.9.jar
│   └── mq.allclient-9.0.jar
└── src/                  # 源代码

核心依赖

  • adxp-client-2.6.9.jar: 数据中台 SDK
  • Apache CXF 3.2.4: SOAP 协议支持
  • Jackson 1.9.13: JSON 序列化
  • Spring Boot 2.7.18: 应用框架

许可证

内部项目