主要变更: - 新增PubSubConnectionFactory连接工厂,提供Pub/Sub API连接管理 - 新增PubSubEventSubscriberImpl实现,支持Pub/Sub API事件订阅 - 更新EventProcessorImpl,添加事件批次处理能力 - 更新RealtimeSyncService,使用Pub/Sub API替代CDC实现 - 更新Authentication.canvas架构文档,添加Pub/Sub组件 - 优化同步配置管理和实时同步日志功能 技术改进: - 提升实时同步性能和可靠性 - 支持批量事件处理,提高吞吐量 - 完善连接工厂模式,统一管理连接生命周期
4.8 KiB
4.8 KiB
迭代复盘
会话信息
- 会话主题: Salesforce CDC实时同步实现
- 会话日期: 2026-01-09
- 会话类型: 技术实现
- 参会人员: 系统管理员
现状分析
项目背景
- 项目需要实现Salesforce数据的及时同步至本地数据库
- 传统的全量同步和增量同步方案存在数据延迟和不一致的问题
- 需要采用更实时的同步方案
当前进度
- 已完成需求文档的创建和更新
- 已完成架构决策记录(ADR)的创建
- 已完成设计文档的创建
- 已实现实时同步日志表相关代码
- 已更新Authentication.canvas画布
目标设定
短期目标
- 实现Salesforce CDC实时同步功能
- 支持多个对象同时复用同一套代码
- 确保数据的及时同步和可靠性
长期目标
- 建立稳定的Salesforce数据同步机制
- 提高系统的整体性能和用户体验
- 为业务系统的高效运行和数据分析提供支持
关键决策
技术选型
- 同步方案: 采用Salesforce CDC (Change Data Capture) 同步方案
- 字段类型: is_realtime_sync字段为tinyint(1)类型
- 批处理检查: 在对象启用CDC时检查batch表是否全量拉取存量数据
- 事件处理: 采用同步执行方式
- upsert实现: 参考DataiIntegrationBatchServiceImpl中的processQueryResult方法
- 重试机制: 暂不考虑失败重试
架构设计
- 核心组件: EventSubscriber、EventProcessor、DataSynchronizer、ObjectRegistry
- 日志记录: DataiIntegrationRealtimeSyncLog实体类和控制器
- 连接关系: 集成核心 → 实时数据同步 → 集成Mapper
- 实时数据同步 → 实时同步日志
执行过程
文档创建与更新
- 创建Salesforce数据及时同步至本地数据库需求文档
- 生成Salesforce CDC同步方案ADR文档
- 创建Salesforce CDC实时同步设计文档
- 生成实时同步日志表的SQL文件
- 更新Authentication.canvas画布,添加实时数据同步相关节点
代码实现
- 实现DataiIntegrationRealtimeSyncLog实体类
- 实现DataiIntegrationRealtimeSyncLogController控制器
- 实现DataiIntegrationRealtimeSyncLogService服务
- 实现DataiIntegrationRealtimeSyncLogMapper映射器
验证与测试
- 验证文档之间的一致性
- 确保代码实现与文档设计一致
- 测试实时同步日志表的功能
引用链接
文档链接
- 需求文档 - Salesforce数据及时同步至本地数据库
- 架构决策 - Salesforce CDC同步方案
- 设计文档 - Salesforce CDC实时同步设计
- 实时同步日志表SQL - 实时同步日志表创建SQL
代码链接
- DataiIntegrationRealtimeSyncLogController - 实时同步日志控制器
- DataiIntegrationRealtimeSyncLog - 实时同步日志实体类
回滚步骤
紧急回滚
- 停止CDC订阅和事件处理
- 禁用对象表中的is_realtime_sync字段
- 暂停实时同步日志表的使用
- 切换回传统的定时同步方案
调整策略
- 优化CDC订阅配置,减少消息处理压力
- 调整事件处理的执行方式
- 实现失败重试机制
下一步计划
开发计划
- 实现EventSubscriber事件订阅器
- 实现EventProcessor事件处理器
- 实现DataSynchronizer数据同步器
- 实现ObjectRegistry对象注册表
测试计划
- 测试单个对象的实时同步功能
- 测试多个对象同时同步的场景
- 测试网络中断和恢复的情况
- 测试系统重启后的恢复机制
文档计划
- 更新用户手册,添加实时同步功能的使用说明
- 完善API文档,添加实时同步相关接口的说明
- 创建故障处理手册,提供常见问题的解决方法
会议纪要
讨论要点
- 确认Salesforce CDC同步方案的技术可行性
- 讨论batch表检查逻辑的实现方式
- 确定upsert操作的具体实现方法
- 评估事件处理的性能影响
行动项
- 实现核心组件的代码
- 测试实时同步功能
- 更新相关文档
- 准备上线计划
总结
本次会话完成了Salesforce CDC实时同步功能的设计和部分实现,包括文档创建、代码实现和架构设计。通过采用Salesforce CDC同步方案,实现了数据的实时同步,支持多个对象同时复用同一套代码,为业务系统的高效运行和数据分析提供了支持。下一步将继续完善核心组件的实现,确保系统的稳定性和可靠性。