- 新增 salesforce.pubsub.consumer.key 配置项 (ID: 171) - 新增 salesforce.pubsub.consumer.secret 配置项 (ID: 172) - 优化 PubSubConnectionFactory.createStsCredentials 方法,从缓存读取配置值 - 注入 SalesforceConfigCacheManager 依赖 - 添加变更记录文档 0008-pubsub-config-optimization.md - 更新文档索引
91 lines
4.1 KiB
Markdown
91 lines
4.1 KiB
Markdown
# 变更记录: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
|
||
- **审核状态**: [通过]
|
||
- **审核意见**: 实现符合设计要求,支持多对象复用,采用事件驱动架构,满足实时同步需求。 |