dotnet core 也能协调分布式事务啦!

      最后更新:2022-06-09 19:47:08 手机定位技术交流文章

      ?质量资源共享?

      学习指南(按键解锁) 知识定位 人群定位
      ? Python Real - War WeChat 预订小程序? 进阶级 这个课程是Python瓶 + WeChat小程序的完美结合,从项目建设到Tencent云部署启动,创建一个完整的堆栈订购系统。
      ?Python定量交易? 入门级 操作:建立可扩展、更安全的、更高效的定量交易系统

      2022年5月24日我们发布了DBPack v0.1.0 版本,该版本主要发布分布式事务函数。在我们的规划里,DBPack旨在支持所有微服务开发语言协调分布式事务,但经过社区反馈,不支持点网核心。于是,我们在v0.1.1中支持点网核心。下面是如何支持点网核心的描述。

      MySql 协议

      首先让我简单地介绍MySql的通信协议。MySql支持两个协议,其中一个是文本协议。一个是二进制协议。MySql客户端使用COM_QUERY请求,MySql服务器使用文本协议响应结果;使用COM_STMT_EXECUTE命令发出的请求,结果将通过二进制协议响应。

      当我们调用MySql Client SDK应用程序启动请求时,不同的MySql客户端SDK将默认使用不同的协议发送请求,但是大多数MySql客户端SDK都支持文本协议和二进制协议,我们可以通过修改属性配置来更改MySql Client SDK的默认行为。比如:

      • JAVA

      在Java语言编写的微服务中,我们编写了修改商品库存的方法,然后通过参数提交执行时,默认SQL请求将被编码

      由COM_QUERY命令发出。

      我们可以修改原来的连接字符串jdbc:mysql://dbpack2:13307/product上加上useServerPrepStmts=true,改为jdbc:mysql://dbpack2:13307/product?useServerPrepStmts=true,第一个COM_STMT_PREPARE请求将在再次执行时发送:

      一旦取得声明ID,声明ID和请求参数被编码并通过COM_STMT_EXECUTE命令发送。

      • Golang

      Golang MySql 驱动程序默认通过添加参数到 dsn 发送在二进制协议中参数的 DML 请求interpolateParams=true,将通过文本协议发送。例如:

      Dotnet Core

      如果您使用EntityFrameworkCore或Dapper来访问数据库,目前不支持使用预备声明。

      https://github.com/dotnet/efcore/issues/5459

      https://github.com/DapperLib/Dapper/issues/474

      v0.1.0版本中,我们只截获了COM_STMT_EXECUTE请求,协调分布式交易。dotnet core不自然地使用COM_QUERY提交请求协调分布式事务,在 v0.1.1中,我们增加了COM_QUERY请求,以支持协调分布式交易,这确实支持所有微服务语言协调分布式事务。

      参见: https://github.com/CECTC/dbpack-samples/tree/main/dotnet。

      其他特性

      该版本还修正了一些错误,并添加了状态 api来查询dbpack的运行状态:

      至此,我们有了

      • /live
      • /ready
      • /status
      • /metrics

      这些 api帮助我们看到dbpack的运行状态。

      完整的版本更改日志可以在 https://github."CECTC/dbpack/releases"上找到。

      在下一个版本中, 我们将添加跟踪和审计日志.

      一些链接

      DBPack项目地址: https://github.com/cectc/dbpack

      DBPack文件: https://cectc.github./dbpack-doc/#/

      DBPack-samples: https://github.com/cectc/dbpack-samples

      DBPack简介: https://mp.Weixin.qq.com/s/DmXfk5bAcVYdnOwvp8ocHA

      基于事件的分布式交易架构设计: https://mp.Weixin.qq.com/s/r43JvRY3LCETMoZjrdNxXA

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/26877.html

          热门文章

          文章分类