作者:Seata社区

社区简介

Seata 是一款开源的分布式业务解决方案,致力于在微服务架构下供给高功能和简单易用的分布式业务服务。在 Seata 开源之前,Seata 在阿里系内部一向扮演着分布式数据一致性中间件的人物,几乎每笔交易都要运用 Seata,协助业务平稳的度过历年的双11洪荒流量,对业务进行了有力的技能支撑。2019.1 为了打造愈加完善的技能生态和普惠技能效果,Seata 正式宣告对外开源,Seata 将以社区共建的方法协助用户快速的落地分布式业务解决方案。短短3年间,Seata 社区现已收成了 22k star 和超 300 名 contributor,树立了一大批企业标杆用户,成为了分布式业务范畴的事实标准。

GitHub:github.com/seata/seata

官网:seata.io/zh-cn/

Seata 社区本年联合了开源之夏,阿里巴巴编程之夏和 CCF GitLink 编程夏令营发起了面向高校学生的暑期编程活动。

开源之夏现在已进入正式编程阶段,本文将不再过多介绍,概况参阅:

mp.weixin.qq.com/s/q6J-swbdW…

开源之夏项目中选状况请参阅:

summer-ospp.ac.cn/#/org/proje…

现在依然有阿里巴巴编程之夏ASoC和CCF GitLink编程夏令营可接受提案的恳求,如果你是在校生满意相应的恳求条件,赶紧来恳求吧。这里有社区资深的导师供给 1v1 的专业指导,也有丰厚的奖金等你来拿。

阿里巴巴编程之夏是什么

Seata 与三大平台携手编程之夏,百万奖金等你来拿

Seata社区本年再度与阿里巴巴编程之夏携手,并准备了 3项精选项目课题,欢迎同学们恳求!

项目一:业务状况数据的长效存储

现在 Seata 的业务 Session 和 undolog 数据虽然会耐久化,但是业务 Session 和 Undolog 会随着大局事物的生命周期定期删去,咱们需求一个日志流水将这些 Session 和 Undolog 的进行耐久化存储,因为业务 Session和Undolog 是 Seata 重要的状况数据,数据的⻓时间耐久化存储关于数据的剖析有重要的含义。主要使命如下:

1、发送层规划。为了不影响 Seata 业务主流程的功能,记载业务 Session 和 Undolog 数据需求选用异步的方法,最好的方法就是利用音讯行列,现在音讯行列有很多种,比方RocketMQ、Kafka 等,为了屏蔽音讯行列的详细完结,Seata 需求规划出一套通用的发送接口层,有详细的音讯行列完结,而且由 Seata 启动时经过读取用户装备加载详细完结。终究经过此接口完结可以把业务 Session 和 Undolog 发送到音讯行列中。

2、范畴模型规划。业务 Session 和 Undolog 需求依照一定的数据结构传输,因而还需求规划一套通用的 Event 事件传输模型,具备一定的可扩展性。

3、消费层规划。消费层默许完结放在 Seata Console,为了屏蔽音讯行列的详细完结,消费端同样需求规划出一套通用的接口层(监听/消费/⻔面类等接口),由详细的音讯行列完结,而且由 Seata Console 启动时经过读取用户装备加载详细完结。

4、数据存储与可视化。经过启动音讯行列的顾客,消费音讯行列的 Event 事件,将数据存储到指定的存储前言中,因为存储后的数据不需求修改,但需求频繁查询,因而存储前言推荐运用 NoSQL 相关数据库。一起对数据进行可视化(建立数据大盘),便于数据的剖析与洞悉。

编程言语:Java

导师:Seata Committer 张乘辉( zhangchenghui.dev@gmail.com)

项目概况:github.com/seata/seata…

项目二:Seata SDK 侧的 metrics 规划

在很多时分,咱们或许需求经过一些实时监控的数据来了解整个体系在当前或许某一时间运转的状况。Metrics 作为一款监控指标的衡量类库,供给了许多东西协助开发者来完结各项数据的监控。此使命便是结合社区的需求,完善 Seata client SDK 侧的各项数据的监控。协助用户有效地监控履行进程并辨认或许存在的问题。

现阶段 Seata 导出的 Metrics 仅包括服务端相关指标,结合现有 Metrics 规划,完善 Seata clientSDK 侧的各项指标规划,主要指标如下:

  1. global begin/commit/rollback 等状况的计算
  2. branch registry/flush undolog/report/commit/rollback 等状况的计算
  3. undolog,fence 等 hook 的调用

编程言语:Java

导师:Seata Top Contributor 刘洋(734843455@qq.com)

项目概况:github.com/seata/seata…

项目三:Seata-Sample 重构使命

Seata-Sample 作为 Seata入门者必经项目,是入门 Seata 的重要途径之一。但 Seata 社区现在日益增大,版别迭代与发布也越来越快,现在 Sample 中现已出现了有许多比如与实践版别脱轨的状况,而这样的状况十分不利于 Seata 后续的发展与迭代。因而对 Seata-Sample 进行重构对整个 Seata 开源项目与 Seata 开源社区具有严重的含义。主要使命如下:

  1. 结构重构。收拾出 Sample 项目中无用、过期、重复或现已无法运转的 Sample 项目,并对其进行收拾,社区后续不再对这类项目进行维护。而关于保留下来经过收拾的项目,咱们需求对其进行结构化的梳理,将 Sample 中的项目与最新版的 Seata 版别进行才干对其,协助新同学更好地入门 Seata。

  2. 官网联动。Seata-Sample 现在的项目才干与官网并无构成联动才干,Sample 与官网的比如是各自为战的状况。咱们期望经过收拾的 Sample 与官网的比如构成才干对齐,协助新同学更好地入门 Seata。

编程言语:Java

导师:Seata Top Contributor 谭志坚( zhijian.tzj@alibabac-inc.com)

项目概况:github.com/seata/seata…

CCF GitLink 编程夏令营

Seata 与三大平台携手编程之夏,百万奖金等你来拿

Seata社区本年与 CCF GitLink 开源编程夏令营携手,并准备了 3项精选项目课题,欢迎同学们恳求!

项目一:Seata-Golang TCC 形式注解支撑

当前 TCC 形式需求完结 TCCService 接⼝,经过该接⼝约束开发者完结 try、cancel、comfirm ⽅法,经过注解,可以简化该进程。完结 TCC golang 注解支撑可参阅:

github.com/MarcGrol/go…

⽤户在使⽤ Seata-Golang TCC 形式和谐分布式业务时,需求将 Try 恳求的上下⽂信息告诉 TC,即 Commit 操作应该调⽤哪个⽅法、Cancel 操作应该调⽤哪个⽅法,以及 Try 恳求的参数。当 TC 发起大局提交、回滚的时分,才干依据业务分⽀决定调⽤哪个⽅法提交、调⽤哪个⽅法回滚。当然这⼀切都是由结构来完结的。问题是,为了告诉 TC Server 这些信息,需求⽤户完结⼀个 TCC Service 接⼝。在程序初始化时,调⽤ tcc.Implement() ⽅法,该⽅法会经过反射获取 Commit 操作对应的 Confirm ⽅法以及 Cancel 操作对应的 Cancel ⽅法,然后将上下⽂信息发送到 TC Server。如果咱们经过注解来完结,则只需在对应的 Try ⽅法上打上注解 @TCC(Commit=”xxx”,Cancel=”xxx”),再合作注解的扫描初始化,即可完结告诉 TC Server Try 恳求上下⽂信息的进程。可以愈加⽅便⽤户使,简化开发,提高功率。

Seata 与三大平台携手编程之夏,百万奖金等你来拿

编程言语:Golang

导师:Seata Committer 刘晓敏( 985784089@qq.com)

项目概况:www.gitlink.org.cn/glcc/subjec…

项目二:AT 形式支撑 Oceanbase oracle 内核

数据库是 Seata 重要的资源扩展,现在 Seata AT 形式支撑 MySQL、PostgreSQL、Oracle、TiDB、MariaDB 等。Oceanbase 是由蚂蚁集团完全自主研制的国产原生分布式数据库。Seata AT 业务形式需求对 Oceanbase 数据库的 Oracle 内核进行相关的支撑(Oceanbase 兼容 MySQL 部分,因而 AT 形式天然支撑 Oceanbase MySQL 内核)。这个项目需求参照 AT 形式中对已有 MySQL、PostgreSQL、Oracle 的梳理出结构图,AT 形式利用 SPI 插件化对这些扩展点已做了笼统和预留。基于扩展点完结 Oceanbase 数据库的 Oracle 内核适配,并终究可以经过 seata-samples 的验证。

编程言语:Java

导师:Seata Committer 季敏 (slievrly@163.com)

项目概况:www.gitlink.org.cn/glcc/subjec…

项目三:Seata 操控台长衔接办理

Seata 1.5.0 供给了操控台办理,操控台是 Seata 的重要白屏化办理手法。业务侧 Seata-Client 与 Seata-Server 经过长衔接通讯,现在关于长衔接缺少可视化展现和操作,不便利会集办理,或许造成衔接数过多容量预估缺乏,歹意衔接难以 trace 等问题,因而需求对衔接 Seata-Server 的客户端衔接可以在操控台页面进行白屏化办理。要求可以在操控台设置单个 Seata-Server 节点可接受衔接数的上限,可在操控台显现详细的客户端长衔接信息,并能进一步供给简单的办理功能。

编程言语:Java + 少数前端 React(可社区支撑)

导师: Seata Committer 季敏(slievrly@163.com)

项目概况:www.gitlink.org.cn/glcc/subjec…

项目报名

学生可自由选择项目,登录官网报名恳求对应项目即可,被选中的同学将在社区导师指导下,按计划完结开发工作,并将效果贡献给社区。社区评价学生的完结度,主办方依据评价成果发放活动奖金给学生。这是同学们是未来毕业简历上浓墨重彩的一笔,也是迈向顶尖开发者的闪亮起点。

阿里编程之夏 ASoC:

asoc2022.opensource.alibaba.com/

CCF GitLink 编程夏令营:

www.gitlink.org.cn/glcc/subjec…

www.gitlink.org.cn/glcc/subjec…

www.gitlink.org.cn/glcc/subjec…

注意事项:一切报名有必要经过体系报名方可有效,报名前请阅读学生攻略。

为了便利同学们的沟通,有意向参加 Seata 社区开源之夏活动的同学请运用钉钉扫码 SummerCode 暑期沟通群。

Seata 与三大平台携手编程之夏,百万奖金等你来拿

等待同学们的参加,让咱们相约相遇在这个夏天!

点击此处,当即查看!