Skip to content

DRAFT_20241228

jsbxyyx edited this page Dec 26, 2024 · 2 revisions

参会人:王良,清铭,陈健斌,刘月财,张峰,程兴源,李树杰,吴江坷,谢明华,汪忠祥等

会议时间:2024/12/28

下次会议时间:2025/01/11 ReleaseManager: 亦夏

如有时间变更,再另行通知,请订阅邮件列表:[email protected][email protected]

一、安全合规

  • seata 项目安全漏洞 @清铭

    • 客户端-服务端,固定密钥问题,2.3版本来不及,放在后续迭代修复

    • 后续第三方依赖漏洞,走迭代修复

  • Apache Logo:Seata的Logo加上Apache元素。@清铭

二、活动/运营信息同步

  • 开源之夏议题,具体可以参考[email protected]
    • 目前课题都已经完成,后续需要推进进行版本合并
  • ALC hangzhou活动;

三、官网/文档

  • 官网访问流量治理 @刘秋枫

    1. nacos和higress 已改版,后续dubbo,之后seata也进行改版。
    2. 智能答疑,参考nacos/higress

    20240907:交由阿里内部人员统一处理,sentinel改完后再改seata,需要几个月后才能完成,涉及合规相关问题,尽量小改。

    20241130:增加百度百科的seata词条,内置seata官网和github外链,待审核。

  • 官网关键词优化(长期):后面与提升页面体验分一起弄

  • 文档:博客问题:@刘秋枫 官网文档目前是整体一篇,需要治理下;

  • 2.0与2.1的新feature的需要一些博客pr,发布在官网,公众号等渠道

    • rocketmq集成 @嘉伟 - 进行中
    • api重构 设计文档发布到官网,然后再编写一篇博客 @瑞姗
    • seata-k8s @祥琨 - 暂无进展
    • seata默认序列化优化 @亦夏
    • 2.3新增fastjson2和apache fury序列化博客 @树杰
    • grpc 文档发布完成
    • nameserver架构原理/raft 博客 -> 文档

四、发版信息

发版规则

  1. 大版本计划改为每个版本有一个重点feature,只要这个重点feature完成,就可以考虑发大版本
  2. 如果没有达到第一点要求,release manager认为将bugfix和optimize的commits梳理后merge到小版本上进行pr提交,测试,验证,然后进行独立的小版本release.

2.3版本

待发布

2.4版本

  1. 控制台事务控制功能 P0, jingliu
  2. 配置中心 P1
  3. GRPC Naming sever支持,sever里面把console拿掉 P1
  4. 控制台、server的部署分离 @jianbin P0
  5. 控制台/server鉴权,解决安全问题 P1
  6. k8s ctl功能随时review发布,不和java一起 P1

五、质量建设

  • 单测/变更覆盖率目标@汪忠祥

    迭代中,单侧覆盖度的统计问题;单侧报告里面包含了依赖相关代码,导致覆盖率下降 规则:sonar,sonarcloud -> 组织管理员

    20241130:单测覆盖度本周增加0.25%,sonar先搁置其沟通和使用成本过高,争取达到60%的单测覆盖度(目前53%)

  • 集测回归能力建设 @张嘉伟 @熊靖浏

    目标:完整、自动化、持续集成,能够完成功能、稳定性、用户体验、安全上能力的验证

    进度:

    20241130:saga注解化sample待2.3发版后合并,随后增加e2e集测 20241214: TODO 更新,saga注解化samples

  • 兼容性测试@王良 @熊靖浏

    目标:兼容性测试需要包含:jdk、mysql-driver,arch等,确保在各个环境下稳定运行

    整体依赖集成测试的进度

    20241116,在e2e模块实现mysql-driver不同版本的兼容性测试

    20241130:后续调研是否能满足在相同sample中根据不同mysql-driver跑多个流水线

  • BenchMark @亦夏

    目标:建立seata性能基线、能够获取到当前系统/服务的性能以及变化,并且进行图形化输出;支持火焰图、trace、基准比对,异常预警等能力;

    进度:已完成:提交第一版pr,支持微基准、profiler能力,后续:压力、吞吐量测试需要new出不同的seataClient,依赖api改造 20241019:Seata多client进度延期,先简单出一版基准的测试,支持namingserver benchmark建设 @亦夏

六、其他讨论事项

  • 支持IO_uring https://github.com/apache/incubator-seata/issues/7063

  • 支持RemoteClient注册事件监听 https://github.com/apache/incubator-seata/issues/7058

  • apache fury 序列化集成 @树杰 20240921: 疑似注册顺序导致id相同,类不同,导致反序列化失败 20241102: 其他问题修复中(注意安全漏洞),序列化安全类,参考dubbo实现

    20241130:采用seata自带安全类方式检测,关闭fury白名单后已提交pr 20241214:分支待review,PR 2.3.0 check处理后

  • seata-spring-boot-starter 支持读取file.conf和registry.conf 20241214:分支待review,PR 2.3.0 check处理后

  • seata-go 1.5.2 功能对齐 https://github.com/apache/incubator-seata/pulls?q=is%3Apr+label%3Amultilingual+is%3Aclosed

    • saga功能,feature/saga,60-70%

      20241130:近期拉会重启该任务

    • 日志优化,待认领;

    • 功能对齐

      20241130:目前正在check跟seata-java的功能,分发任务中

  • raft集群nat场景支持

    1. 跨机房调用时,不同机房网段不同,通过nat转换后再不同的机房同一个tc的ip是不同的
    2. k8s场景,k8spodip无法被集群外直连,需要映射出一组可用的ip供外部使用

    20241102: 任务描述,增加issue

  • client多连接支持优化lb直连场景体验

    1. 无注册中心下,由于通过file读取lb地址后,针对一个地址只创建单一连接,导致tm,rm可能通过lb负载到了不同的tc节点,导致tm决议时,rm无法提交/回滚事务
    2. 单一连接可能存在连接异常,无限重传包等问题

    20241130:rm侧无重试(rm侧不应该重试,容易有幂等问题),tm重试时连接依然需要等待doconnect才能成功

  • 单点服务限流 @靖浏

    20240817:限流组件选定为bucket4j,bucket4j内没有使用synchronized,所以不影响虚拟线程,可继续完成该任务。目前由于限流后client会报错,但是不方便追踪,故通过生成雪花id+client相关信息放入异常中,可通过server日志和client日志进行排查是否被限流,再增加一个metrics以便排查。 20241019:pr已提待review,放在2.3版本中

    遗漏问题:server与nacos结合时,metrics消失 @靖浏,待跟进

    20241130:1.客户端兼容问题,限流时增加了error resul tcode,存在高低版本不兼容,目前result code去除,改为直接写入到msg中避免该问题,待后续明华侧转换和忽略的功能合并后再考虑增加errorcode,低版本客户端也要考虑忽略不认识的request 2.限流值可通过配置中心动态更新(包括raft扩缩容,是否也应该根据配置文件变化自动生效,而不是只能通过接口) 3.metrics增加限流的tag client ip和server ip。

    支持动态配置,to review

  • jdk19+ 虚拟线程适配 @云清

    1. 去除非单例模式的synchronized关键字,改为ReentrantLock [Prevent virtual thread pinned · Issue #6724 · apache/incubator-seata (github.com)](https://github.com/apache/incubator-seata/issues/6724) 20241116: 分两波,1)synchronized修改进度90% 2)虚拟线程适配

      20241130:synchronized pinned虚拟线程问题已经解决,目前正在测试

    2. 梳理seata client+server 中所有线程池,将线程池统一使用一个threadpoolfactory构建,以便在不同的java版本上使用不同的线程池,比如高版本可以统一为虚拟线程池

      20241130:还未开始

  • 控制台增加undolog查看的白屏界面(注意压缩场景),方便查看前后对比,手动解undolog?

    20241130:后续发布任务,控制台复制粘贴undolog rollback info后自动解开,待发布任务

  • 批量删除undolog @明华 (依赖多版本协议支持及协议协商) 客户端是否支持批量,低版本保持原样

    20241214: 放2.4再合并

  • tm/rm 注册失败需要返回原因 @明华(依赖多版本协议支持及协议协商) 20241016: pr已提交,待review

    20241130: 2.3发完后再进行review,先处理ci问题,2.4开始client记录server版本,以便对server一些逻辑兼容 20241214: 放2.4再合并

  • rocketmq半消息发送还未report时或发送后宕机,导致回滚npe https://github.com/apache/incubator-seata/issues/7034

    20241130:

    2.4 增加本地缓存的一些状态,让rocketmq的分支可以自行/提前回滚,可参考xa那块。

    考虑一些配置默认值的更改,一些无用开关清理,以及线程数等开放到配置中2.4 时进行讨论

  • saga json序列化autotype问题 20241019:修改默认的序列化方式为非autoType方式,不支持接口子类型,兼容历史产生的数据,如果仍需要的话需要自己重写jsonparser,pr待提交,2.4.0

  • 全局统一json工具 20241019:任务已经发布,待认领

  • TM/RM未init,rm注册,不再忽略,直接异常;改动影响比较大,@亦夏 放在多client之后再做,暂不讨论

后续规划

Clone this wiki locally