网站服务器中如何做重定向全网营销的渠道
2026/1/12 21:30:41 网站建设 项目流程
网站服务器中如何做重定向,全网营销的渠道,烟台汽车租赁网站建设,数据网站有哪些Seata#xff08;Simple Extensible Autonomous Transaction#xff09;是阿里巴巴开源的分布式事务解决方案。它的架构设计旨在通过最小化业务侵入来解决微服务架构下的数据一致性问题。 以下是对Seata框架三种角色以及部署方式的详细解析#xff1a; 一、Seata框架的三种角…SeataSimple Extensible Autonomous Transaction是阿里巴巴开源的分布式事务解决方案。它的架构设计旨在通过最小化业务侵入来解决微服务架构下的数据一致性问题。以下是对Seata框架三种角色以及部署方式的详细解析一、Seata框架的三种角色Seata 的架构模型主要由TC事务协调者、TM事务管理器和RM资源管理器这三个核心角色组成。这三个角色分别承担了分布式事务生命周期中的不同职责。1. TC (Transaction Coordinator) - 事务协调者定位Server端独立部署。职责状态维护负责维护全局事务和分支事务的状态如Begin、PhaseOne_Commit、PhaseOne_Rollback等。事务决策负责发起全局事务的提交Commit或回滚Rollback请求。状态汇总收集所有分支事务的状态Commit/Rollback决定全局事务的最终结果。数据持久化将事务状态写入事务日志表global_table和branch_table用于事务的恢复和补偿。2. TM (Transaction Manager) - 事务管理器定位Client端通常由发起全局事务的业务服务扮演。职责事务边界负责开启、提交或回滚全局事务对应GlobalTransactional注解。业务控制在业务代码中调用TC告知TC事务的开始或结束。状态汇报根据业务执行结果向TC汇报是否需要提交或回滚全局事务。3. RM (Resource Manager) - 资源管理器定位Client端通常由涉及具体业务资源如数据库的微服务扮演。职责分支事务负责在本地创建分支事务并向TC注册分支事务branch_register。资源操作执行实际的业务操作如SQL更新。回滚/提交接收TC的指令执行分支事务的提交或回滚如AT模式下回滚Undo Log。锁管理在AT模式下RM负责锁表lock_table的管理防止脏写。二、Seata的部署方式Seata 的部署主要分为Server端TC的部署和Client端TM/RM的集成。以下是详细的部署步骤与方案1. 部署前的准备环境要求JDK 1.8、Maven用于构建、MySQL/PostgreSQL/Redis用于事务日志存储。网络要求TC服务器需要能够被业务服务TM/RM访问到。2. TCServer端的部署TC是Seata的核心服务需要单独部署。方式一本地/服务器部署下载与解压从Seata官方GitHub或官网https://seata.io 下载对应版本的二进制压缩包如seata-server-1.6.0。配置文件registry.conf配置服务注册中心如Nacos、Zookeeper用于TC向注册中心注册自己的服务地址。file.conf配置事务日志的存储模式Store Mode。推荐使用DB模式在生产环境中通常选择store.modedb并配置MySQL连接信息store.db.datasource。注意如果是单机调试可以使用file模式但file模式不支持高可用集群。application.yml可选的Spring Boot风格配置文件用于覆盖默认配置。初始化数据库在MySQL中创建seata库。执行script目录下的SQL脚本如db.sql创建global_table、branch_table、lock_table、undo_log等表。启动服务在Linux/Mac终端执行sh ./bin/seata-server.sh。在Windows终端执行bin\seata-server.bat。启动参数-h指定服务注册到注册中心的IP默认自动获取。-p指定服务端口默认8091。-m指定事务日志存储模式如db。集群部署如果需要高可用集群只需在多台机器上部署TC服务并确保它们都注册到同一个注册中心如Nacos。方式二容器化部署Docker/KubernetesDocker官方提供了seataio/seata-server镜像。可以通过docker run -d -p 8091:8091 -v /path/to/config:/seata-server/resources seataio/seata-server启动。Kubernetes可以使用官方提供的Helm Chart或自定义YAML文件进行部署建议通过ConfigMap注入registry.conf和file.conf通过Secret注入数据库密码。3. Client端TM/RM的集成TC部署完成后业务服务需要通过集成Seata Client来扮演TM和RM角色。依赖引入Spring Cloud Alibaba项目通常引入spring-cloud-starter-alibaba-seata。Spring Boot项目引入seata-spring-boot-starter。核心配置application.ymlspring:cloud:alibaba:seata:tx-service-group:my_test_tx_group# 事务组名称TC通过此名称来区分不同业务service:vgroup-mapping:my_test_tx_group:default# 将事务组映射到默认的TC分组defaultgrouplist:default:127.0.0.1:8091# 指定TC服务的地址如果是集群模式使用Nacos注册中心则无需手动指定registry:type:nacosnacos:server-addr:127.0.0.1:8848# 注册中心地址推荐使用Nacos业务代码在全局事务的入口方法上添加GlobalTransactional注解即可将当前服务扮演为TM。使用Seata的DataSource代理如DataSourceProxy在底层扮演RM角色负责捕获Undo LogAT模式或锁表AT模式。三、核心注意事项事务组Transaction Groupmy_test_tx_group是业务服务的唯一标识TC会根据这个标识来区分不同业务的事务日志。存储模式选择AT模式默认依赖于数据库Undo Log撤销日志对业务代码侵入性最低。TCC模式需要业务手动补偿适用于对业务有严格控制的场景。SAGA模式适用于长事务。XA模式直接依赖底层资源的XA协议适用于所有资源都支持XA的情况。高可用生产环境强烈建议使用Nacos/Zookeeper作为注册中心并将TC部署为集群模式多节点以避免单点故障。 关注公众号【云技纵横】目前正在更新分布式缓存进阶技巧和干货

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询