开源之夏是什么
开源之夏是由“开源软件供应链点亮计划”发起的暑期开源活动,由中国科学院软件研究所与 openEuler 社区联合主办,旨在鼓励在校学生积极参与开源软件的开发维护,促进优秀开源软件社区的蓬勃发展。活动联合国内外各大开源社区,针对重要开源软件的开发与维护提供项目任务,并面向全球高校学生开放报名。
学生可自主选择感兴趣的项目进行申请,并在中选后获得社区资深开发者亲自指导的机会。项目成功结项并贡献给社区后,参与者将获得开源之夏活动奖金和结项证书。
Seata 社区今年再度与开源之夏携手,并准备了 6 项精选项目课题,现已公布至官网,欢迎同学们扫码或点击阅读原文报名申请!
项目简介
Seata 是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。在 Seata 开源之前,Seata 在阿里经济体内部一直扮演着分布式数据一致性中间件的角色,几乎每笔交易都要使用 Seata,帮助业务平稳的度过历年的双 11 洪荒流量,对业务进行了有力的技术支撑。2019.1 为了打造更加完善的技术生态和普惠技术成果,Seata 正式宣布对外开源,Seata 将以社区共建的形式帮助用户快速的落地分布式事务解决方案。短短 3 年间,Seata 社区已经收获了 22k star 和超 300 名 contributor,树立了一大批企业标杆用户,成为了分布式事务领域的事实标准。
GitHub:https://github.com/seata/seata
项目一:扩展 AT 模式的 SQL 语法支持
当前 Seata AT 模式 SQL 语法支持了 insert/update/delete 的简单操作,以及 MySQL 的 insert into on duplicate key update 语法,期望可以对实现 InsertOrUpdateExecutor 的基类以及为其实现包括 insert ignore into, replace into, insert select, oracle IGNORE_ROW_ON_DUPKEY_INDEX 在内的语法支持。
导师:Seata Committer 曹华栋
项目详情:https://summer-ospp.ac.cn/#/org/prodetail/220640396
项目二:Seata-server 与控制台模块分离并提供 OpenAPI
Seata 控制台功能,是 1.5 版本后的重大特性功能,这是为用户展示事务信息,锁信息,及后续手动处理异常事务的管理入口。目前 seata 控制台逻辑和 server 耦合在一个模块中,需要将 console 模块独立出来。server 模块和 console 模块通过 openAPI 进行通信交互和数据获取。
导师:Seata Committer 汪忠祥
项目详情:https://summer-ospp.ac.cn/#/org/prodetail/220640392
项目三:Seata控制台配置项页面管理
将 Seata 所需要的配置项从 Seata 自身控制面板修改后持久化到配置中心,完成 Seata 关键参数的修改,配置下发和配置生效流程,将事务相关配置管理内聚到 Seata 自身控制面板中管理,形成有效的事务闭环。
导师:Seata Committer
王良项目详情:https://summer-ospp.ac.cn/#/org/prodetail/220640389
项目四:计算与存储分离模式优化
在 Seata 计算与存储分离下,Redis 成为炙手可热的 Seata 事务存储模式,其高性能深受广大用户青睐,但再此模式下,使用的是 java+jedis(pipeline,mulit)的处理,导致在 server 端断电,宕机等情况下,会因为多次网络 io 及计算下才算一次完整动作的缘故导致如全局锁有可能被残留,导致数据的不一致,令人望而却步。而改为 lua 脚本进行时可将一系列计算+存储交由 redis 进行,保证了 tc 存储数据和争抢全局锁时的原子性,保证 redis 事务存储模式下的高可用,一致性。
导师:Seata Committer 陈健斌
项目详情:https://summer-ospp.ac.cn/#/org/prodetail/220640397
项目五:Seata gRPC 协议支持
当前 Seata 采用的私有协议进行 RPC 传输,在云原生大环境下,采用私有协议已经不符合目前主流趋势和标准,而使用于基于 http2 的公有协议是 Seata 迈向云原生重要的一步,增加 gRPC 协议传输的支持,在 Seata 目前通信模块中进一步抽象,使之向下兼容原有的 Netty 实现,及 gRpc 扩展。
导师:Seata Committer 钟正涛
项目详情:https://summer-ospp.ac.cn/#/org/prodetail/220640404
项目六:支持 GTS 通信协议和消息
Seata 从 0.7 版本后协议做了重大变更,导致无法兼容 0.7 以下版本和内部产品,故此需要进一步支持内部产品 TXC/GTS 产品的通信协议,使 Seata-server 侧能够无缝兼容 2 种通信协议并且支持 TXC/GTS 的事务消息处理,以达到使用 TXC/GTS client 的用户也可以通过 txc-client 使用 Seata-server 提供的分布式事务服务且可使停留至 0.7 及以下用户无缝升级。
导师:阿里云 分布式事务团队 赵学良
项目详情:https://summer-ospp.ac.cn/#/org/prodetail/22064043803
参与方式
学生可自由选择项目,登录官网报名申请对应项目即可,被选中的同学将在社区导师指导下,按计划完成开发工作,并将成果贡献给社区。社区评估学生的完成度,主办方根据评估结果发放活动奖金给学生。这是同学们是未来毕业简历上浓墨重彩的一笔,也是迈向顶尖开发者的闪亮起点。
日期 | 阶段 |
04/21-05/20 | 项目沟通期 |
05/21-06/04 | 学生提交项目申请书 |
06/05-06/11 | 项目申请审核(导师) |
06/12-06/14 | 项目申请审核(组委会) |
06/15 | 中选公示 |
06/16-06/30 | 项目预热期 |
07/01-09/30 | 项目开发 |
10/01-10/31 | 结项审核 |
11 月上旬 | 结项项目公示 |
为了方便同学们的交流,有意向参与 Seata社区开源之夏活动的同学请使用钉钉扫码 SummerCode 暑期交流群。
期待同学们的加入,让我们相约相遇在这个夏天!
社区推荐
对于微服务配置和微服务发现有兴趣的同学,可以尝试填报团队维护的另一个重磅级开源项目--Nacos,来参与开源之夏。
https://nacos.io/zh-cn/blog/iscas2022.html