easycar更新日记

简介: easycar更新日记

上一次介绍了新开发的一个分布式的事务框架easycar一个用go实现的分布式事务框架,这篇就当是对easycar的更新日记了。


服务注册与发现


由于easycar底层基于gRPC, 通过自定义Resolver接口还是很容易实现的。


负载均衡


客户端负载均衡,目前支持

  • round-robin
  • random
  • consistent hash
  • ip-hash
  • least-load


架构图


1668517188841.jpg


上次提到,参与的一组分布式事务可能部分操作存在先后顺序的问题。

我举了个例子,我们需要保证必须先执行account扣减余额和stock扣减库存服务成功后,才能创建订单order的服务。同时account和stock服务并不需要保证他们的执行顺序。下图


1668517204435.jpg


以这个例子,那么实际在easycar中整个流程,


成功


1668517225671.jpg


失败


1668517240986.jpg


在easycar中,client负责和easycar(TC)端交互。主要负责注册分支,触发执行分布式事务以及查看状态等。

它并不会和RM产生联系。也就是说它不会负责去请求RM的第一阶段,这是和其他平台不同的一点。

TC全程接管和更新RM状态。


分支状态


1668517265241.jpg


项目地址:


Easycar: https://github.com/wuqinqiang/easycar

Client-go: https://github.com/easycar/client-go

Examples: https://github.com/easycar/examples

相关文章
|
存储 运维 机器人
Nvidia和AMD显卡是如何制作的
Nvidia和AMD显卡是如何制作的
580 0
|
监控 项目管理
MP项目特性详解
当今世界,项目管理已成为企业成功的关键因素之一。在众多项目管理方法和认证中,PMP(Project Management Professional)无疑是最受认可的之一。PMP认证代表着高水平的项目管理能力,而了解PMP项目特性则是掌握这一领域的重要一步。本文将深入探讨PMP项目特性,帮助您更好地理解和应用项目管理的最佳实践。
|
网络协议 网络安全 网络虚拟化
IPv6地址详解
IPv4地址资源的紧张限制了Internet的进一步发展。NAT、CIDR、VLSM等技术的使用仅仅暂时缓解IPv4地址紧张,但不是根本解决办法。
938 0
|
存储 JSON 网络协议
阿里巴巴FastJSON使用实例
阿里巴巴FastJSON使用实例
1269 0
|
XML Java Maven
【Maven技术专题】「实战开发系列」盘点Maven项目中打包需要注意到的那点事儿
【Maven技术专题】「实战开发系列」盘点Maven项目中打包需要注意到的那点事儿
395 1
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的仓储管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的仓储管理系统附带文章源码部署视频讲解等
139 1
基于springboot+vue.js+uniapp的仓储管理系统附带文章源码部署视频讲解等
|
存储 关系型数据库 MySQL
MySQL bit类型增加索引后查询结果不正确案例浅析
【8月更文挑战第17天】在MySQL中,`BIT`类型字段在添加索引后可能出现查询结果异常。表现为查询结果与预期不符,如返回错误记录或遗漏部分数据。原因包括索引使用不当、数据存储及比较问题,以及索引创建时未充分考虑`BIT`特性。解决方法涉及正确运用索引、理解`BIT`的存储和比较机制,以及合理创建索引以覆盖各种查询条件。通过`EXPLAIN`分析执行计划可帮助诊断和优化查询。
279 1
|
机器学习/深度学习 数据采集 算法
Python实现ISSA融合反向学习与Levy飞行策略的改进麻雀优化算法优化支持向量机回归模型(SVR算法)项目实战
Python实现ISSA融合反向学习与Levy飞行策略的改进麻雀优化算法优化支持向量机回归模型(SVR算法)项目实战
|
人工智能 JavaScript Shell
Github 2024-06-10开源项目周报 Top15
根据Github Trendings的统计,本周(2024年6月10日统计)共有15个项目上榜。按开发语言分类,上榜项目数量如下:Python 8项,Jupyter Notebook 和 Go 各2项,C++、Shell、Lua 和 JavaScript 各1项。亮点项目包括Python-100天从新手到大师、Syncthing开源同步工具、初学者的生成式人工智能(第2版)等。这些项目涵盖了代码教育、文件同步、数据分析等多个领域。
352 1
|
数据可视化 数据挖掘 Linux
10幅必须掌握的Seaborn绘图
10幅必须掌握的Seaborn绘图
381 0