企业网站设计哪个好企业图案设计图片
news/
2025/9/23 10:18:33/
文章来源:
企业网站设计哪个好,企业图案设计图片,wordpress 不同的文章,湖南新型网络营销方式分布式事务解决方案之Seata
Seata的概念
Seata是阿里巴巴开源的分布式事务解决方案#xff0c;致力于提供高性能和简单易用的分布式事务服务。Seata 提供了 AT、TCC、SAGA 和 XA 事务模式#xff0c;为用户打造一站式的分布式解决方案。 Seata官网给出的架构示例如下#…分布式事务解决方案之Seata
Seata的概念
Seata是阿里巴巴开源的分布式事务解决方案致力于提供高性能和简单易用的分布式事务服务。Seata 提供了 AT、TCC、SAGA 和 XA 事务模式为用户打造一站式的分布式解决方案。 Seata官网给出的架构示例如下 Seata Server安装
Seata官方下载地址
Seata解压后的目录如下
conf配置文件目录其中有两个配置文件application.yml和application.example.yml。application.yml是seata的配置文件application.example.yml是示例配置文件。binseata的启动目录logseata的日志目录libseata依赖的jar包scriptsseataServer运行需要的数据库表的sql脚本、logstash配置和配置中心相关的脚本
application.yml文件内容如下
server:port: 7091 #seata 后台管理系统的portspring:application:name: seata-server #seata服务名称logging:config: classpath:logback-spring.xmlfile:path: ${log.home:${user.home}/logs/seata}extend:logstash-appender:destination: 127.0.0.1:4560kafka-appender:bootstrap-servers: 127.0.0.1:9092topic: logback_to_logstashconsole:user: #seata后台用户名和密码username: seatapassword: seata
seata:config: #seata配置中心相关配置#seata支持的注册中心: nacos, consul, apollo, zk, etcd3type: nacos #这里使用nacos作为配置中心nacos:server-addr: 127.0.0.1:8848 #注册中心地址namespace: 8ff552f0-0212-43b2-8ea0-e4c2aa359084group: testgrtoup1username:password:context-path:##if use MSE Nacos with auth, mutex with username/password attribute#access-key:#secret-key:data-id: seataServer.properties # 使用nacos配置中心去管理seata的配置registry: #seata注册中心相关配置# support: nacos, eureka, redis, zk, consul, etcd3, sofatype: nacosnacos:application: seata-server #seata服务的名称server-addr: 127.0.0.1:8848 #nacos注册中心地址group: testgrtoup1 #seata服务所在的分组namespace: 8ff552f0-0212-43b2-8ea0-e4c2aa359084 #seata服务所在的命名空间cluster: HZ #集群名称username: password:context-path:##if use MSE Nacos with auth, mutex with username/password attribute#access-key:#secret-key: server:service-port: 8091 #seata 服务的端口默认是8091security:secretKey: SeataSecretKey0c382ef121d778043159209298fd40bf3850a017tokenValidityInMilliseconds: 1800000ignore:urls: /,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.jpeg,/**/*.ico,/api/v1/auth/loginSeata Server需要连接数据库单独给Seata Server创建一个数据库记录分布式事务的相关信息。Seata Server使用的数据库的配置文件 seataServer.properties内容如下
# 数据存储方式db代表数据库
store.modedb
store.db.datasourcedruid
store.db.dbTypemysql
store.db.driverClassNamecom.mysql.jdbc.Driver
store.db.urljdbc:mysql://127.0.0.1:3306/seata?useUnicodetruerewriteBatchedStatementstrue
store.db.userroot
store.db.passwordroot
store.db.minConn5
store.db.maxConn30
store.db.globalTableglobal_table
store.db.branchTablebranch_table
store.db.queryLimit100
store.db.lockTablelock_table
store.db.maxWait5000
# 事务、日志等配置
server.recovery.committingRetryPeriod1000
server.recovery.asynCommittingRetryPeriod1000
server.recovery.rollbackingRetryPeriod1000
server.recovery.timeoutRetryPeriod1000
server.maxCommitRetryTimeout-1
server.maxRollbackRetryTimeout-1
server.rollbackRetryTimeoutUnlockEnablefalse
server.undo.logSaveDays7
server.undo.logDeletePeriod86400000# 客户端与服务端传输方式
transport.serializationseata
transport.compressornone
# 关闭metrics功能提高性能
metrics.enabledfalse
metrics.registryTypecompact
metrics.exporterListprometheus
metrics.exporterPrometheusPort9898Seata使用
seata使用需要给seataServer创建数据库以及相关的表同时在客户端对应的服务的数据库中也需要创建undo_log表去记录事务提交前和提交后的数据的信息AT模式需要undo_log表其它模式不需要。
seataServer需要的sql脚本1.7.1版本对应的SQL脚本创建undo_log表seata的AT模式需要在涉及到分布式事务的每个服务的数据库中创建这张表。 seata 1.7.1版本对应的undo_log sql其它版本对应的undo_log sql也可以在上面找到。
1、在分布式事务涉及到的服务中引入seata客户端的依赖 dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-seata/artifactId/dependency2、在yml文件中进行seata的配置
seata: #seataS配置让微服务通过注册中心找到seata服务registry:type: nacosnacos:server-addr: 127.0.0.1:8848 #注册中心的地址namespace: 8ff552f0-0212-43b2-8ea0-e4c2aa359084 #命名空间group: testgrtoup1 #分组application: seata-server #seata服务的名称tx-service-group: seata-demo #事务分组名称需要和service.vgroup-mapping的值保持一致service:vgroup-mapping: #事务组和Seata-server集群的映射关系seata-demo: HZ #seata-demo是事务分组名 HZ是集群名称也就是seata-demo这个事务分组对应的是HZ这个集群中的seata-serverdata-source-proxy-mode: AT #Seata默认为AT模式 3、为了演示搭建了Account、Order、Storage三个服务三个服务通过OpenFeign进行远程调用。 业务流程账户扣减金额–创建订单–减少库存
Seata的使用非常简单只需要在业务流程的发起处使用GlobalTransactional即可。 这里在最后特地使用代码制造了异常。
访问请求后控制台输出的信息如下 可以看到分支事务被删除了undo_log日志中的信息也被删除了最后PhaseTwo_Rollbacked二阶段回滚了事务。
参考
Seata官方快速开始Seata AT 模式事务分组专题Docker部署Seata与Nacos整合spring-cloud-alibaba组件版本对应关系使用 Docker 部署 Seata Server (1.5.0及以上)
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/912184.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!