随着PR https://github.com/apache/incubator-seata/pull/6754 的合并,Seata Server能够做到识别并处理Grpc请求,这意味着任意语言客户端,只需要引入proto文件,就可以和部署在JVM上的Seata Server通信,进而实现分布式事务的全流程。
下面以Go语言为例,向大家演示这一过程。
环境准备
Goland 2024.2
Idea 2024.3
jdk 1.8
go 1.23.3
Seata 2.3.0-SNAPSHOT
libprotoc 3.21.0
操作过程
部署并启动 Seata Server
运行 org.apache.seata.server.ServerApplication#main,如下所示
proto文件导入
在go项目中导入完成本次事务流程所需的proto文件,包括各类事务请求和响应的proto文件和发起RPC的proto文件。如下所示
grpc相关文件生成
在上一步导入的proto文件目录下,执行命令
protoc --go_out=. --go-grpc_out=. .\*.proto