全网唯一标准王
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210601650.6 (22)申请日 2022.05.30 (71)申请人 世纪恒通科技股份有限公司 地址 550014 贵州省贵阳市贵阳国家高新 技术产业开发区中关村贵阳科技园核 心区南园科教街18 8号 (72)发明人 杨兴荣 张乾华 杨伟帆 杨兴海  李建州  (51)Int.Cl. G06F 16/242(2019.01) G06F 16/2455(2019.01) G06F 16/2457(2019.01) G06F 16/27(2019.01) G06F 16/28(2019.01) G06Q 30/00(2012.01) (54)发明名称 应用于客服工单系统的分布式事务处理办 法 (57)摘要 本发明公开了应用于客服工单系统的分布 式事务处理办法, 涉及数据处理技术领域, 针对 现有的SaaS平台业务量大, 需要 把底层服务 分别 部署在多台服务器上, 但是多台服务器 之间并不 会进行沟通, 所以会产生事务的不一致性情况, 使用效果差, 工作效率低的问题, 现提出如下方 案, 包括以下步骤: S1: 用户请求服务网关, 网关 依次调用微服务模块, 当模块之间相互调用并执 行操作的时候。 本发明设计合理, 事务处理部署 简单, 只需要完成好SQL队列处理服务和SQL事务 处理服务的开发, 将其余的微服务调用数据库的 SQL都经过该模块进行处理, 由SQL事 务处理模块 来统一访问和操作数据库即可完成事务的一致 性处理, 使用效果 好, 工作效率高。 权利要求书1页 说明书3页 附图2页 CN 115080588 A 2022.09.20 CN 115080588 A 1.应用于客 服工单系统的分布式事务处 理办法, 其特 征在于, 包括以下步骤: S1: 用户请求服务网关, 网关依次调用微服务模块, 当模块之间相互调用并执行操作的 时候, 会在SQ L语句中加入标注, 以便在SQ L队列服务处理队列时识别该事务是否 完整。 S2: 产生调用链后, 这些调用链会发送SQL到SQL队列处理服务模块, 将与事务启动请求 对应的事务划分为事务组, 产生的事务组推送到SQ L事务处理模块并且 存入缓存数据库中。 S3: 在队列处理服务中, 当收到来自微服务的SQL操作请求时, 首先会将SQL存入缓存数 据库, 主线程会产生一个子线程, 用于校验和循环获取与该请求相同组的其他SQL访问进 程。 直到该相同组的SQL执行语句已经到齐, 然后将其设置为同义事务组, 作为一个大事务 进行处理。 当然他们还 包含各自请求的子事务。 S4: SQL队列处理模块会将封装好的事务组传递给SQL事务处理模块, SQL事务处理模块 获取到SQ L事务组合 开启一个线程专门用于处 理该事务组。 S5: SQL事务处理程序会将事务组进行分解, 去对应的数据库中获取操作前置SQL语句, 后保存到缓存数据库中, 以防止事务组执 行过程中出错时 回滚已经完成的操作。 S6: 当前置SQL语句获取到后, 接下来就进行真实的SQL增删改查, 直到所有SQL语句 执 行完成。 如都执行成功, 则 返回结果给SQL队列服务模块, 服务模块再将结果依次返回给对 应的对应的微 服务, 到此事务执 行完成。 S7: 在上一步中, 分别执行事务时如果产生错误, 则立马根据以缓存的前置SQL进行回 退操作, 最 终达到要么全部成功, 要么全部失败, 事务在回滚的过程中如果校验到脏数据产 生, 则此时程序已经 无法进行继续处 理, 需要转 为人工介入处 理。 2.根据权利要求1所述的应用于客服工单系统 的分布式事务处理办法, 其特征在于: 统 一使用SQL队列服务模块和SQL事务处理模块管理工单系统所有微服务模块发送过来的 SQL。 3.根据权利要求1所述的应用于客服工单系统 的分布式事务处理办法, 其特征在于: 所 述一组SQL执行完成前置获取之后, 进行实际增删改操作, 当该组所有SQL都执行完成后依 次向微服务模块返回结果, 反 之根据前置语句执 行回滚操作后再返回失败的结果。 4.根据权利要求1所述的应用于客服工单系统 的分布式事务处理办法, 其特征在于: 所 述SQL处理服务实为在数据库操作之前的一道数据库服务网关, 异步的SQL执行机制, 同时 有别于现有的类似SEATA的处理机制, 将所有 数据库的事务日志和回滚信息存储在SQL处理 服务内存或Redis缓存中。 5.根据权利要求1所述的应用于客服工单系统 的分布式事务处理办法, 其特征在于: 需 要在各微服务的SQL语句中加入标识符, 确定其SQL语句在调用链中的的位置, 类似于单项 链表的方式, 前后增加标识指 针, 用于在队列服务中划分和确定SQL语句所属的操作 链组是 否完成, 以此来判断事务操作是否 完整。权 利 要 求 书 1/1 页 2 CN 115080588 A 2应用于客服工单系统的分布式事务处理办法 技术领域 [0001]本发明涉及数据处理技术领域, 尤其涉及应用于客服工单系统的分布式事务处理 办法。 背景技术 [0002]SaaS平台是运营SaaS软件的平台,SaaS提供商为企业搭建信息化所需要的所有网 络基础设施及软件﹑ 硬件运作平台, 并负责所有前期的实施、 后期的维护等一系列服务, 企 业无需购买软硬件﹑ 建设机房、 招聘IT人员, 即可通过互联网使用信息系统,SaaS是一种软 件布局模型, 其应用专为网络交付而设计, 便于用户通过互联网托管﹑ 部署及接入。 为提高 企业的事物处 理效率, 所以亟需应用于客 服工单系统的分布式事务处 理办法。 [0003]但是, 现有的SaaS平台业务量大, 需要把底层服务分别部署在多台服务器上, 但是 多台服务器之 间并不会进 行沟通, 所以会产生事务的不一致性情况, 使用效果差, 工作效率 低。 发明内容 [0004]本发明的目的是为了解决现有的SaaS平台业务量大, 需要把底层服务分别部署在 多台服务器上, 但是多台服务器之间并不会进行沟通, 所以会产生事务的不一致性情况, 使 用效果差, 工作效率低的缺 点, 而提出的应用于客 服工单系统的分布式事务处 理办法。 [0005]为了实现上述目的, 本发明采用了如下技 术方案: [0006]应用于客 服工单系统的分布式事务处 理办法, 包括以下步骤: [0007]S1: 用户请求服务网关, 网关依次调用微服务模块, 当模块之间相互调用并执行操 作的时候, 会在SQ L语句中加入标注, 以便在SQ L队列服务处理队列时识别该事务是否 完整。 [0008]S2: 产生调用链后, 这些调用链会发送S QL到SQL队列处理服务模块, 将与事务启动 请求对应的事务划分为事务组, 产生的事务组推送到SQL事务处理模块并且存入缓存数据 库中。 [0009]S3: 在队列处理服务中, 当收到来自微服务的S QL操作请求时, 首先会将S QL存入缓 存数据库, 主线程会产生一个子线程, 用于校验和循环获取与该请求相同组的其他SQL访问 进程。 直到该相同组的SQL执行语句已经到齐, 然后将其设置为同义事务组, 作为一个大事 务进行处 理。 当然他们还 包含各自请求的子事务。 [0010]S4: SQL队列处理模块会将封装好的事务 组传递给SQL事务 处理模块, SQL事务 处理 模块获取到SQ L事务组合 开启一个线程专门用于处 理该事务组。 [0011]S5: SQL事务处理程序会将事务组进行分解, 去对应的数据库中获取操作前置SQL 语句, 后保存到缓存数据库中, 以防止事务组执 行过程中出错时 回滚已经完成的操作。 [0012]S6: 当前置SQL语句获取到后, 接下来就进行真实的SQL增删改查, 直到所有SQL语 句执行完成。 如都执行成功, 则返回结果给SQL队列服务模块, 服务模块再将结果依次返回 给对应的对应的微 服务, 到此事务执 行完成。说 明 书 1/3 页 3 CN 115080588 A 3

.PDF文档 专利 应用于客服工单系统的分布式事务处理办法

文档预览
中文文档 7 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共7页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 应用于客服工单系统的分布式事务处理办法 第 1 页 专利 应用于客服工单系统的分布式事务处理办法 第 2 页 专利 应用于客服工单系统的分布式事务处理办法 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-18 00:14:32上传分享
友情链接
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。