开发者社区 > 云原生 > 中间件 > 正文

seata是如何在client端连接到server端的吗 ?

seata是如何在client端连接到server端的吗

展开
收起
防火防爆 2024-08-23 13:36:12 51 0
2 条回答
写回答
取消 提交回答
  • TC是在@GlobalTransaction注解切面类里,连接seata server生成全局事务id 切面类不用你加,seata本身就支持,你直接在yaml配置seata server的地址就行。此回答整理自钉钉群“3群-Apache Seata(incubating) 开源讨论群”

    2024-08-28 12:29:25
    赞同 展开评论 打赏
  • Seata 在客户端连接到服务端的过程主要涉及配置与协议交互两个方面:

    1. 配置Seata客户端连接信息

      • 首先,确保Seata客户端(即您的应用程序)正确配置了Seata Server的地址信息。这通常在Seata客户端的配置文件中完成,您需要指定Seata Server的主机和端口,例如:
        service.vgroup_mapping.my_tx_group = default
        store.db.url=jdbc:mysql://localhost:3306/seata
        service.cluster.ip=127.0.0.1
        service.cluster.port=8091
        
      • 若Seata Server采用了如MSE Nacos等作为配置中心或注册中心,还需配置相应的访问凭据和地址,确保客户端能发现并认证到Nacos服务
        nacos {
          serverAddr = "mse-xxxx-nacos-ans.mse.aliyuncs.com:8848"
          accessKey = "xxxx"
          secretKey = "xxxx"
        }
        
    2. 协议与网络通信

      • Seata遵循其定义的分布式事务框架协议,该协议允许客户端(TM)与服务端(TC)之间进行事务协调。当应用执行分布式事务操作时,TM会通过网络向TC发送事务开始、提交、回滚等指令
      • Seata Server(TC)作为事务协调者,负责接收客户端请求,管理全局事务状态,并驱动事务分支的提交或回滚,确保数据一致性<

    综上所述,Seata客户端通过预先配置的Seata Server地址信息,利用Seata定义的事务协议,与Seata Server建立连接并进行分布式事务的协调处理。在特定场景下,如使用云服务或特定中间件(如MSE Nacos),还需额外配置相应的访问凭证和网络设置以确保顺利连接。

    2024-08-24 16:16:39
    赞同 24 展开评论 打赏

为企业提供高效、稳定、易扩展的中间件产品。

相关电子书

更多
《Seata 1.3 新特性以及如何参与社区》 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载