datai/datai-scenes/datai-scene-salesforce/docs/changelog/0007-pubsub-api-implementation.md
Kris be3640121c feat: 添加 Pub/Sub API 配置项并优化连接工厂
- 新增 salesforce.pubsub.consumer.key 配置项 (ID: 171)
- 新增 salesforce.pubsub.consumer.secret 配置项 (ID: 172)
- 优化 PubSubConnectionFactory.createStsCredentials 方法,从缓存读取配置值
- 注入 SalesforceConfigCacheManager 依赖
- 添加变更记录文档 0008-pubsub-config-optimization.md
- 更新文档索引
2026-01-12 17:02:32 +08:00

91 lines
4.1 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.

# 变更记录Salesforce Pub/Sub API 实时同步功能实现
## 变更信息
- **版本号**: v1.0.0
- **发布日期**: 2026-01-12
- **变更类型**: [功能实现]
## 变更摘要
本次变更基于 `com.salesforce.multicloudj:pubsub-client:0.2.10` 依赖实现了Salesforce Pub/Sub API同步数据到本地数据库的功能。通过事件驱动架构支持实时捕获Salesforce Change Events并同步数据确保本地系统能够实时获取Salesforce中的最新数据。
## 详细变更
### 功能实现
- **PubSubConnectionFactory** - 实现与Salesforce Pub/Sub API的连接管理使用multicloudj的SubscriptionClient
- **PubSubEventSubscriberImpl** - 实现Salesforce Event Bus事件订阅实时捕获数据变更
- **EventProcessorImpl** - 实现事件的解析和处理逻辑将Salesforce Change Events转换为本地数据模型
- **DataSynchronizerImpl** - 实现数据的同步逻辑执行upsert操作将变更数据同步至本地数据库
- **ObjectRegistryImpl** - 实现对象的注册表管理,维护所有启用实时同步的对象信息,支持多对象复用同一套代码
- **RealtimeSyncServiceImpl** - 实现实时同步服务的初始化和启动,管理服务的生命周期
### 技术特点
- **使用multicloudj组件** - 基于 `com.salesforce.multicloudj:pubsub-client:0.2.10` 依赖利用其提供的SubscriptionClient进行事件订阅
- **事件驱动架构** - 采用事件驱动的实时同步架构支持订阅Salesforce Change Events并实时同步数据
- **多对象复用** - ObjectRegistry组件支持多对象复用同一套代码
- **断线重连** - 实现了断线重连机制,确保系统稳定性
- **异常处理** - 添加了完善的异常处理机制,确保系统在异常发生后能够保持稳定运行
- **日志记录** - 实现了详细的同步日志记录,便于问题排查
## 影响范围
### 受影响的模块
- **集成核心模块** - 新增实时同步核心组件
- **Salesforce连接模块** - 扩展支持Pub/Sub API事件订阅
- **数据同步模块** - 新增实时同步能力
### 兼容性说明
- **向后兼容** - 本次变更不影响现有的定时同步功能
- **API兼容性** - 新增的核心组件提供独立的API接口
## 升级指南
### 升级步骤
1. **引入依赖** - 确保项目中已添加 `com.salesforce.multicloudj:pubsub-client:0.2.10` 依赖
2. **配置同步对象** - 在DataiIntegrationObject中启用实时同步设置isRealtimeSync为true
3. **启动服务** - 应用启动时RealtimeSyncServiceImpl会自动启动实时同步服务
4. **监控同步状态** - 通过同步日志监控同步状态和排查问题
### 注意事项
- **Salesforce API限制** - 注意Salesforce的API调用限制避免触发限流
- **事件处理性能** - 确保事件处理逻辑高效,避免成为性能瓶颈
- **网络稳定性** - 确保网络连接稳定,避免事件订阅中断
## 测试信息
### 测试环境
- **开发环境** - 本地开发环境连接Salesforce Sandbox
### 测试结果
- **事件订阅测试** - 成功订阅Salesforce Change Events
- **事件处理测试** - 成功解析和处理变更事件
- **数据同步测试** - 成功执行upsert操作将变更数据同步至本地数据库
- **多对象测试** - 成功支持多个对象同时使用
- **异常处理测试** - 成功处理各类异常,确保系统稳定性
## 相关链接
- [需求文档](../requirements/0001-salesforce-realtime-sync.md) - Salesforce数据及时同步至本地数据库
- [设计文档](../design/0001-salesforce-cdc-realtime-sync.md) - Salesforce CDC实时同步设计
- [架构决策](../decisions/adr/0001-salesforce-cdc-sync.md) - Salesforce CDC同步方案
- [参考代码](../reference-code/salesforce-pubsub-realtime-sync/multicloudj/) - multicloudj组件参考代码
## 发布人员
- **开发人员** - 系统管理员
## 审核信息
- **审核人员**: 系统管理员
- **审核日期**: 2026-01-12
- **审核状态**: [通过]
- **审核意见**: 实现符合设计要求,支持多对象复用,采用事件驱动架构,满足实时同步需求。