当前位置: 首页 > news >正文

档案信息网站建设的意义我的网站突然打不开了

档案信息网站建设的意义,我的网站突然打不开了,wordpress多个页面主题,一品猪网站开发你好#xff0c;欢迎来到本次关于PmHub分布式事务Seata保证任务审批状态一致性的面试系列分享。在这篇文章中#xff0c;我们将深入探讨这一技术领域的相关面试题预测。若想对相关内容有更透彻的理解#xff0c;强烈推荐参考之前发布的博文#xff1a;【PmHub面试篇】性能监…你好欢迎来到本次关于PmHub分布式事务Seata保证任务审批状态一致性的面试系列分享。在这篇文章中我们将深入探讨这一技术领域的相关面试题预测。若想对相关内容有更透彻的理解强烈推荐参考之前发布的博文【PmHub面试篇】性能监控与分布式追踪利器Skywalking面试专题分析 1 简历中提到分布式事务能否详细说明你的实践方案 解析 面试中需通过场景拆解→技术选型→实现细节→验证结果四步结构化应答结合具体项目体现技术深度。 以下以网页中 PmHub 项目使用 Seata AT 模式保障任务审批状态一致性 为例整理具体回答 1.1 业务场景 在 PmHub 项目 的“添加项目任务”场景中需跨微服务操作多个数据库 pmhub-project 服务负责创建任务、添加成员、记录操作日志涉及 project_task、project_member、project_log 表。pmhub-workflow 服务需同步更新任务的审批设置涉及 wf_approval_set 表。 核心问题传统本地事务无法解决跨服务、多数据源的数据一致性问题需引入分布式事务方案。 1.2 技术选型与方案设计 1.2.1 选择 Seata AT 模式的原因 无业务侵入性仅需在入口方法添加 GlobalTransactional 注解底层自动管理事务回滚适配快速开发需求。适用场景匹配AT 模式基于 2PC 协议适合简单业务场景如单表操作、跨库更新与“任务审批状态同步”的短流程场景契合。 1.2.2 环境搭建与配置 部署 Seata Server 下载并启动 Seata 2.0.0 版本配置 Nacos 作为注册中心MySQL 数据库pmhub-seata存储事务日志需创建 global_table、branch_table、lock_table 表。 业务库集成 在 pmhub-project 和 pmhub-workflow 数据库中创建 undo_log 表记录回滚日志表结构需包含 xid、branch_id 等字段用于支持 Seata 自动补偿。 -- undo_log 表结构AT 模式必需 CREATE TABLE undo_log (id BIGINT NOT NULL AUTO_INCREMENT,branch_id BIGINT NOT NULL COMMENT 分支事务 ID,xid VARCHAR(128) NOT NULL COMMENT 全局事务 ID,rollback_info LONGBLOB NOT NULL COMMENT 回滚数据快照,PRIMARY KEY (id),UNIQUE KEY ux_undo_log (xid, branch_id) ) ENGINEInnoDB;1.3 代码实现与关键逻辑 1.3.1 微服务配置 引入依赖在 pmhub-project 模块中添加 Seata 基础依赖 pmhub-base-seata。配置事务组在 application-dev.yml 中定义事务组 default_tx_group并映射到 Seata Server 集群。seata:registry:type: nacosnacos:server-addr: 127.0.0.1:8848tx-service-group: default_tx_group # 事务组名称service:vgroup-mapping:default_tx_group: default # 映射到 Seata Server 集群1.3.2 标注全局事务 在 pmhub-project 服务的任务创建接口上添加 GlobalTransactional 注解声明全局事务范围及回滚规则 Override GlobalTransactional(name pmhub-project-addTask, rollbackFor Exception.class) public String add(TaskReqVO taskReqVO) {// 1. 本地事务操作创建任务、添加成员、记录日志projectTaskMapper.insert(projectTask);insertMember(projectTask.getId(), 1, SecurityUtils.getUserId());saveLog(addTask, projectTask.getId(), ...);// 2. 跨服务调用更新审批设置远程调用 pmhub-workflow 服务ApprovalSetDTO approvalSetDTO new ApprovalSetDTO(projectTask.getId(), ...);R? result wfDeployService.insertOrUpdateApprovalSet(approvalSetDTO);if (result.fail()) {throw new ServiceException(审批设置更新失败); // 触发全局回滚}return projectTask.getId(); }1.3.3 底层原理 一阶段执行与记录 执行业务 SQL 前Seata 自动拦截并记录数据快照到 undo_log 表。本地事务提交后向 Seata Server 注册分支事务。 二阶段提交/回滚 正常提交各分支事务直接提交删除 undo_log 快照。异常回滚Seata Server 协调各分支根据 undo_log 还原数据如任务创建失败时自动回滚已插入的任务、成员、日志数据。 1.4 验证与结果 正常场景任务创建与审批配置同步成功Seata 控制台显示PhaseOne_Done异常场景模拟远程调用超时所有操作回滚无脏数据残留回滚耗时 200ms 以内 1.5 总结 通过 Seata AT 模式以低侵入性实现跨服务事务管理相比传统重试机制开发效率提升 60%系统稳定性达 99.95%。 2. Seata AT 模式如何实现无业务侵入 解析 需从代理机制→数据镜像→注解驱动三层面拆解技术实现。 核心原理 JDBC 代理拦截 Seata 通过DataSourceProxy代理业务数据源拦截PreparedStatement的execute方法在执行业务 SQL 前 / 后生成数据快照beforeImage与afterImage。自动管理回滚日志 数据快照与事务元数据xid、branch_id自动写入undo_log表无需开发者手动操作。注解驱动事务边界 开发者仅需在服务入口方法添加GlobalTransactional注解Seata 自动管理全局事务的开始、分支注册与最终决议。 对比 TCC 模式 AT 模式无业务逻辑改造适用于 CRUD 场景TCC 模式需实现 Try/Confirm/Cancel 三阶段业务侵入性强适合资金类复杂场景 具体过程在客户端配置好连接后在业务库中添加undo_log表Seata-AT模式会自动生成和管理undo_log通过代理拦截数据库操作和事务操作通过简单的注解配置启用分布式事务管理开发者只需在业务方法上添加注解无需更改原有的业务逻辑和数据库操作方式。 3. 分布式事务有哪些主流方案如何选型 包括XA方案、TCC方案、SAGA方案、本地消息表、可靠消息最终一致性方案、最大努力通知方案根据上述介绍进行详细阐述。 3.1 分布式事务核心问题 分布式系统中一个事务涉及 多个服务/数据库需保证跨资源操作的 原子性、一致性。常见场景包括 跨微服务的业务流程如电商下单扣库存、支付。多数据库分库分表场景。跨公司/系统的异步交互如第三方支付回调。 3.2 主流分布式事务解决方案 3.2.1 XA方案两阶段提交2PC 核心原理 阶段一Prepare事务管理器TM协调所有参与者RM如数据库执行事务操作各参与者锁定资源并返回执行结果。阶段二Commit/RollbackTM根据所有参与者的反馈决定提交或回滚事务。若全部成功则提交否则回滚。 优点 强一致性适用于金融级场景。数据库原生支持如MySQL、Oracle实现简单。 缺点 性能低下资源锁定时间长不适合高并发场景。单点风险TM故障会导致事务阻塞。 适用场景单应用跨多库的短事务如传统企业系统。 3.2.2 TCC方案Try-Confirm-Cancel 核心原理 Try阶段预留资源如冻结金额、锁定库存完成业务校验。Confirm阶段确认执行真正业务操作使用Try阶段预留的资源需幂等。Cancel阶段释放Try阶段预留的资源需幂等。 优点 强一致性适合资金类场景。可控制资源锁定粒度性能优于XA。 缺点 开发成本高需手动实现三个阶段业务侵入性强。补偿逻辑复杂需处理幂等、空回滚、防悬挂等问题。 适用场景短流程、高并发且需要强一致性的场景如支付、交易。 3.2.3 SAGA方案补偿事务 核心原理 将长事务拆分为多个本地短事务按顺序执行。若某一步骤失败反向执行已成功步骤的补偿操作如订单回滚后反向取消库存锁定。 优点 无锁、高性能无需全局锁适合长事务。参与者可异步执行容错性强。 缺点 最终一致性不保证强一致性可能出现中间状态。补偿逻辑复杂需处理事务顺序和异常重试。 适用场景长流程、对一致性要求宽松的业务如物流状态更新、跨系统审批。 3.2.4 可靠消息最终一致性方案 核心原理 基于消息队列如RocketMQ、Kafka实现事务消息 生产者发送“半消息”对消费者不可见到MQ。执行本地事务根据结果决定Commit消息可见或Rollback消息丢弃。MQ定时回查生产者事务状态确保消息最终投递。 消费者接收消息后执行本地事务并通过ACK机制保证至少一次消费。 优点 解耦服务适合异步场景。实现相对简单无需修改业务逻辑。 缺点 依赖消息中间件需处理消息重复消费、丢失问题。一致性取决于消息投递可靠性最终一致性。 适用场景高并发、异步处理的业务如订单通知、积分发放。 3.2.5 本地消息表方案 核心原理 在本地数据库中创建消息表将业务操作与消息发送绑定在同一个本地事务中。生产者通过定时任务轮询消息表将未发送的消息投递到MQ。消费者处理消息后更新消息状态失败则重试。 优点 不依赖外部中间件基于数据库实现。适合简单场景开发成本低。 缺点 性能瓶颈轮询消息表影响数据库性能。消息表与业务紧耦合扩展性差。 适用场景低并发、业务简单的系统如内部工单系统。 3.2.6 最大努力通知方案 核心原理 生产者执行本地事务后通过MQ发送通知消息。消费者接收消息并处理若失败则由生产者按策略重试如间隔递增重试。最终通过人工介入或接口查询确保一致性。 优点 实现简单无复杂补偿逻辑。适合对一致性要求不高的场景。 缺点 不保证绝对一致性可能需要人工干预。依赖重试机制可能产生脏数据。 适用场景通知类业务如物流状态通知、短信提醒。 3.3 方案对比表 方案一致性级别性能复杂度适用场景典型框架/工具XA强一致性低低单应用跨多库短事务数据库原生支持TCC强一致性中高高并发资金类场景Seata、TarsSAGA最终一致性高中长流程、异步业务Seata、Apache Camel可靠消息最终一致性高中异步解耦业务RocketMQ、Kafka本地消息表最终一致性中低简单低并发系统自研最大努力通知最终一致性高低通知类、弱一致性场景MQ重试机制 3.4 选择建议 强一致性场景 优先考虑 TCC高并发或 XA简单场景如支付、金融交易。 长事务/异步场景 使用 SAGA 或 可靠消息如订单流程、跨系统审批。 轻量级场景 低并发可选 本地消息表通知类业务选 最大努力通知。 微服务架构 推荐使用 Seata 框架支持AT/TCC/SAGA多模式适配Spring Cloud等生态。 4 面试加分项扩展知识与最佳实践 4.1 Seata AT 模式的局限性 锁粒度问题基于全局锁lock_table实现高并发下可能出现锁竞争大事务风险单事务操作数据量过大时undo_log表可能成为性能瓶颈适用边界不适合需要人工介入的长事务如人工审核流程 4.2 性能优化策略 分库分表场景通过 Seata 的Multi数据源代理支持分布式事务读多写少场景一阶段只读事务可配置readOnlytrue跳过undo_log生成监控告警结合 SkyWalking 追踪事务链路设置 Seata 控制台阈值监控事务超时 5 面试应答模板如何体现项目深度 结构化表达公式 场景项目中遇到什么问题方案为什么选此技术实现核心代码 / 配置结果数据指标 / 收益 示例 在 PmHub 项目中我们遇到跨服务任务创建的数据不一致问题场景。对比 XA 的性能瓶颈与 TCC 的开发成本后选择 Seata AT 模式方案。通过添加undo_log表与GlobalTransactional注解实现了无侵入的事务管理实现。上线后数据不一致故障率从 0.5% 降至 0.03%接口响应时间稳定在 200ms 以内结果。 6 参考链接 PmHub分布式事务Seata保证任务审批状态一致性
http://www.w-s-a.com/news/171005/

相关文章:

  • wordpress返回顶部插件wordpress站群seo
  • 企业网站建设报价表百度竞价托管哪家好
  • 织梦网站首页打开慢淄博网站推广那家好
  • 苏州高端网站建设kgwl互动网站建设的主页
  • 宿州网站建设哪家公司好个人网站制作方法
  • 网站正能量晚上在线观看视频站长之家关键词挖掘工具
  • 建设网站怎么判断是电脑还是手机仿租号网站源码网站开发
  • seo百度网站排名软件重庆巫山网站设计公司
  • 搭建视频播放网站网站排名诊断
  • 网站域名注册网站centos做网站服务器
  • 网站服务器共享的 vpsh5页面制作软件电脑版
  • 免费手机网站申请上海网站建设设计公司哪家好
  • 站长工具大全企业网上书店网站建设设计
  • 做网站的专业公司公司网站是做的谷歌的
  • 做网站前期工作wordpress图片并排
  • 免费注册网站哪个好wordpress评论修改
  • 合肥模板网站建设软件赤峰公司网站建设
  • 毕业设计都是做网站吗深圳网站制作企业邮箱
  • 网站排名 优帮云小规模公司简介怎么写
  • 那个做头像的网站好选择手机网站建设
  • 设计一个网站花多少时间做视频网站适合用什么服务器
  • asp网站开发环境订单系统单页面网站怎么做
  • 山东网站建设都有那些企业推广策略
  • 网站开发文档是什么概念衣服销售网站建设规划书范文
  • 中国建筑装饰网官网企业网站设计优化公司
  • 南海建设工程交易中心网站c2c交易平台有哪些?
  • 有没有专业做网站架构图的软件番禺建设网站哪个好
  • 建立网站第一步整站seo优化公司
  • php网站开发文章管理系统wordpress 评论 顶踩 心 插件
  • 网站做百度收录的意义html网页设计代码作业代码