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

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
可观测可视化 Grafana 版,10个用户账号 1个月
简介: Seata 社区今年联合了开源之夏,阿里巴巴编程之夏和 CCF GitLink 编程夏令营发起了面向高校学生的暑期编程活动。

作者:Seata社区


社区简介


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


GitHub:https://github.com/seata/seata


官网:https://seata.io/zh-cn/


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


开源之夏目前已进入正式编程阶段,本文将不再过多介绍,详情参考:


https://mp.weixin.qq.com/s/q6J-swbdWqZebuSiq2JDWg


开源之夏项目中选情况请参考:


https://summer-ospp.ac.cn/#/org/projectlist


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


阿里巴巴编程之夏是什么


1.png


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)


项目详情:https://github.com/seata/seata/issues/4636


项目二: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)


项目详情:https://github.com/seata/seata/issues/4637


项目三: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)


项目详情:https://github.com/seata/seata-samples/issues/537


CCF GitLink 编程夏令营


2.png


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


项目一:Seata-Golang TCC 模式注解支持


当前 TCC 模式需要实现 TCCService 接⼝,通过该接⼝约束开发者实现 try、cancel、comfirm ⽅法,通过注解,可以简化该过程。实现 TCC golang 注解支持可参考:


https://github.com/MarcGrol/golangAnnotations


⽤户在使⽤ 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 请求上下⽂信息的过程。可以更加⽅便⽤户使,简化开发,提升效率。

image.gif

3.png


编程语言:Golang


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


项目详情:https://www.gitlink.org.cn/glcc/subjects/detail/71


项目二: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)


项目详情:https://www.gitlink.org.cn/glcc/subjects/detail/8


项目三:Seata 控制台长连接管理


Seata  1.5.0 提供了控制台管理,控制台是 Seata 的重要白屏化管理手段。业务侧 Seata-Client 与 Seata-Server 通过长连接通信,目前对于长连接缺少可视化展示和操作,不方便集中管理,可能造成连接数过多容量预估不足,恶意连接难以 trace 等问题,因此需要对连接 Seata-Server 的客户端连接能够在控制台页面进行白屏化管理。要求能够在控制台设置单个 Seata-Server 节点可接受连接数的上限,可在控制台显示具体的客户端长连接信息,并能进一步提供简单的管理功能。


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


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


项目详情:https://www.gitlink.org.cn/glcc/subjects/detail/134


项目报名

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


阿里编程之夏 ASoC:

https://asoc2022.opensource.alibaba.com/


CCF GitLink 编程夏令营:

https://www.gitlink.org.cn/glcc/subjects/detail/8

https://www.gitlink.org.cn/glcc/subjects/detail/71

https://www.gitlink.org.cn/glcc/subjects/detail/134


注意事项:所有报名必须通过系统报名方可有效,报名前请阅读学生指南。


为了方便同学们的交流,有意向参与 Seata 社区开源之夏活动的同学请使用钉钉扫码 SummerCode 暑期交流群。


4.jpeg


期待同学们的加入,让我们相约相遇在这个夏天!


点击此处,立即查看!

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
SQL 关系型数据库 数据库
学习分布式事务Seata看这一篇就够了,建议收藏
学习分布式事务Seata看这一篇就够了,建议收藏
|
6月前
|
SQL 安全 关系型数据库
Seata 解决分布式事务理论与实践(2)
Seata 解决分布式事务理论与实践(2)
Seata 解决分布式事务理论与实践(2)
|
6月前
|
数据库 Nacos 微服务
Seata 解决分布式事务理论与实践(1)
Seata 解决分布式事务理论与实践(1)
|
2月前
|
关系型数据库 MySQL 数据库
分布式事务Seata
分布式事务Seata
|
2月前
|
Java 数据库连接 API
分布式事物【XA强一致性分布式事务实战、Seata提供XA模式实现分布式事务】(五)-全面详解(学习总结---从入门到深化)
分布式事物【XA强一致性分布式事务实战、Seata提供XA模式实现分布式事务】(五)-全面详解(学习总结---从入门到深化)
60 0
|
开发框架 Java 数据库连接
分布式事物【XA强一致性分布式事务实战、Seata提供XA模式实现分布式事务】(五)-全面详解(学习总结---从入门到深化)(下)
分布式事物【XA强一致性分布式事务实战、Seata提供XA模式实现分布式事务】(五)-全面详解(学习总结---从入门到深化)
37 0
|
25天前
|
SQL 数据库 Windows
SpringCloud集成seata分布式事务控制
SpringCloud集成seata分布式事务控制
16 0
|
1月前
|
SQL SpringCloudAlibaba 中间件
SpringCloud Alibaba Seata处理分布式事务--学习笔记
SpringCloud Alibaba Seata处理分布式事务--学习笔记
26 0
|
3月前
|
数据库 微服务
分布式事务Seata
A(Atomic):原子性,构成事务的所有操作,要么都执行完成,要么全部不执行,不可能出现部分成功部分失败的情况。
|
3月前
|
SQL 关系型数据库 FESCAR
分布式事务框架 seata
分布式事务框架 seata
73 0