4.5 KiB
4.5 KiB
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
快速开始
方式1:Docker 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: 应用框架
许可证
内部项目