SOFA Weekly | 每周精选【8/19 - 8/23】

2024-01-17 05:08
文章标签 23 19 精选 每周 weekly sofa

本文主要是介绍SOFA Weekly | 每周精选【8/19 - 8/23】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

SOFA WEEKLY | 每周精选,筛选每周精华问答

同步开源进展,欢迎留言互动

640?wx_fmt=png

SOFAStack(Scalable Open Financial Architecture Stack)是蚂蚁金服自主研发的金融级分布式架构,包含了构建金融级云原生架构所需的各个组件,包括微服务研发框架,RPC 框架,服务注册中心,分布式定时任务,限流/熔断框架,动态配置推送,分布式链路追踪,Metrics 监控度量,分布式高可用消息队列,分布式事务框架,分布式数据库代理层等组件,也是在金融场景里锤炼出来的最佳实践。

SOFAStack 官网: https://www.sofastack.tech

SOFAStack: https://github.com/sofastack

  每周读者问答提炼  

欢迎大家向公众号留言提问或在群里与我们互动

我们会筛选重点问题通过 

" SOFA WEEKLY " 的形式回复

1、@廖春涛 提问:

在 SOFAJRaft 中,snapshot load 后应该会有个日志重放的实现,但是我目前看代码没看到说 snapshot 和 LogEntry 有关联的地方,请问是什么关系呢?

A:snapshot 就是为了压缩日志,以及加快新节点加入。snapshot 后,会将上上次的 snapshot 当时对应的日志级之前的删掉,为什么是上上次?因为本次 snapshot 的日志,可能还没有复制到所有 follower,这是一个小优化。具体到日志重放,如果启动是 leader,会写入一条当前配置的日志,触发 fsm caller 的 onCommitted,然后去重放从 snapshot 的日志到最新的 committed 的日志到状态机。如果是 follower,安装 snapshot 后, leader 会发送该 snapshot 对应的日志之后的日志,走正常的复制流程,因此也会重放到最新的状态机。

SOFAJRaft 当 Leader 的 Node 执行 apply 后,将 LogEntry 提交给 follower 是通过通知来进行的吗?是不是在 LogManagerImpl 里面的这串代码:

640?wx_fmt=png

A:这段是 wakeup replicators,复制日志到 follower 都是在 Replicator 中实现的。

2、关于 Seata 的 grouplist 问题:

什么时候会用到 file.conf 中的 default.grouplist?

A:当 registry.type=file 时会用到,其他时候不读。

default.grouplist 的值列表是否可以配置多个?

A:可以配置多个,配置多个意味着集群,但当 store.mode=file 时,会报错。原因是在 file 存储模式下未提供本地文件的同步,所以需要使用 store.mode=db,通过 db 来共享 TC 集群间数据。

是否推荐使用 default.grouplist?

A:不推荐,如问题1,当 registry.type=file 时会用到,也就是说这里用的不是真正的注册中心,不具体服务的健康检查机制当tc不可用时无法自动剔除列表,推荐使用 nacos 、eureka、redis、zk、consul、etcd3、sofa。registry.type=file 或 config.type=file 设计的初衷是让用户再不依赖第三方注册中心或配置中心的前提下,通过直连的方式,快速验证 Seata 服务。

3、关于 Seata 事务分组:

什么是事务分组?

A:事务分组是 Seata 的资源逻辑,类似于服务实例。在 file.conf 中的 my_test_tx_group 就是一个事务分组。

通过事务分组如何找到后端集群?

A:首先程序中配置了事务分组(GlobalTransactionScanner 构造方法的 txServiceGroup 参数),程序会通过用户配置的配置中心去寻找 service.vgroup_mapping. 事务分组配置项,取得配置项的值就是 TC 集群的名称。拿到集群名称程序通过一定的前后缀+集群名称去构造服务名,各配置中心的服务名实现不同。拿到服务名去相应的注册中心去拉取相应服务名的服务列表,获得后端真实的 TC 服务列表。

为什么这么设计,不直接取服务名?

A:这里多了一层获取事务分组到映射集群的配置。这样设计后,事务分组可以作为资源的逻辑隔离单位,当发生故障时可以快速 failover。

  本周推荐阅读  

  • 蚂蚁金服在云原生架构下的可观察性的探索和实践 | Meetup#3 回顾

  • 分布式事务 Seata Saga 模式首秀以及三种模式详解 |  Meetup#3 回顾

   SOFA 项目进展  

本周发布详情如下:

1、发布 Seata v0.8.0 版本,主要变更如下:

i. 支持 oracle 数据库的 AT 模式

ii. 支持 oracle 数据库的批量操作

iii. 支持 undo_log 表名可配置

iv. 修复 xid 在 db 模式可重复的问题

v. 优化数据镜像比对日志

详细参考发布报告:

https://github.com/seata/seata/releases/tag/v0.8.0

2、发布 SOFAARK v1.0.0 版本,主要变更如下:

i. 支持插件批量导出资源和 ark-biz 禁止批量导入资源

ii. 支持指定版本调用,解决对于非激活状态的ark-biz服务访问问题(主要用于灰度验证,测试等)

iii. 支持打包时跳过打ark-executable 包的过程(优化)

iv. 支持从目录运行启动

v. ArkClient api 支持指定 biz 的 arguments 参数

vi. 使用 netty 代替 java NIO 实现 telnet server

vii. 支持 SpringBoot testNG

viii. 优化示例工程

详细发布报告:

https://github.com/sofastack/sofa-ark/releases/tag/v1.0.0

  SOFA 活动推荐  

640?wx_fmt=jpeg

<SOFA:Channel/>线上直播第 8 期报名中~

8 月 29 日周四晚 7 点,将邀请 SOFAJRaft 开源负责人力鲲,从一个 SOFAJRaft 实例出发,带大家体验 SOFAJRaft 的应用。

本期主题:SOFAChannel#8:从一个例子开始体验 SOFAJRaft

直播时间:8 月 29 日下周四晚 7点

你将收获

  • 如何使用 SOFAJRaft 实现自己的分布式应用

  • 基于实例理解 SOFAJRaft 中的概念和术语

报名方式:点击“阅读原文”

欢迎加入直播互动钉钉群:23390449(搜索群号加入即可)

本文归档在 sofastack.tech。

640?wx_fmt=png

这篇关于SOFA Weekly | 每周精选【8/19 - 8/23】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/614947

相关文章

高效录音转文字:2024年四大工具精选!

在快节奏的工作生活中,能够快速将录音转换成文字是一项非常实用的能力。特别是在需要记录会议纪要、讲座内容或者是采访素材的时候,一款优秀的在线录音转文字工具能派上大用场。以下推荐几个好用的录音转文字工具! 365在线转文字 直达链接:https://www.pdf365.cn/ 365在线转文字是一款提供在线录音转文字服务的工具,它以其高效、便捷的特点受到用户的青睐。用户无需下载安装任何软件,只

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

GitHub每周最火火火项目(9.2-9.8)

项目名称:polarsource / polar 项目介绍:polar 是一个开源项目,它是 Lemon Squeezy 的替代方案,并且具有更具优势的价格。该项目的目标是为开发者提供一种更好的选择,让他们能够在追求自己的热情和兴趣的同时,通过编码获得相应的报酬。通过使用 polar,开发者可以享受到更实惠的价格,同时也能够更自由地发挥自己的创造力和技能。 项目地址:https://github.

react笔记 8-19 事件对象、获取dom元素、双向绑定

1、事件对象event 通过事件的event对象获取它的dom元素 run=(event)=>{event.target.style="background:yellowgreen" //event的父级为他本身event.target.getAttribute("aid") //这样便获取到了它的自定义属性aid}render() {return (<div><h2>{

华为23年笔试题

消息传输 题目描述 在给定的 m x n (1 <= m, n <= 1000) 网格地图 grid 中,分布着一些信号塔,用于区域间通信。 每个单元格可以有以下三种状态:  值 0 代表空地,无法传递信号;  值 1 代表信号塔 A,在收到消息后,信号塔 A 可以在 1ms 后将信号发送给上下左右四个方向的信号塔; 值 2 代表信号塔 B,在收到消息后,信号塔 B 可以在 2ms

系统架构师考试学习笔记第三篇——架构设计高级知识(19)嵌入式系统架构设计理论与实践

本章考点:         第19课时主要学习嵌入式系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分)。在历年考试中,案例题对该部分内容都有固定考查,综合知识选择题目中有固定分值的考查。本课时内容侧重于对知识点的记忆、理解和应用,按照以往的出题规律,嵌入式系统架构设计基础知识点基本来源于教材内。本课时知识架构如图19.1所示。 一、嵌入式系统发展历程

【vulhub】thinkphp5 2-rce 5.0.23-rce 5-rce 漏洞复现

2-rec 1.启动环境  cd /.../vulhub/thinkphp/2-rce # cd进入2-rce靶场文件环境下docker-compose up -d # docker-compose启动靶场docker ps -a # 查看开启的靶场信息 2.访问192.168.146.136:8080网页 3.构造payload http

Python精选200Tips:91-100

To do a good job, one must first sharpen their tools. 091 sys092 os093 json094 re邮箱地址手机号身份证号数字(整数和浮点数)匹配科学计数法汉字大、小写字母年月日 095 itertools096 datetime097 math098 random099 collectionsCounterdequedefa

【linux mysql】mysql高版本8.0.23版本密码修改总结

mysql 8.0 版本,由于增加了一些安全策略等限制,所以修改用户密码会稍微麻烦些。下面是针对这个高版本的总结。 一、配置/etc/my.cnf 文件 免密码登录mysql vim /etc/my.cnf# 增加这两行命令skip-grant-tablesdefault-authentication-plugin=mysql_native_password 重启启动mysql se

深度学习每周学习总结N9:transformer复现

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项目定制 目录 多头注意力机制前馈传播位置编码编码层解码层Transformer模型构建使用示例 本文为TR3学习打卡,为了保证记录顺序我这里写为N9 总结: 之前有学习过文本预处理的环节,对文本处理的主要方式有以下三种: 1:词袋模型(one-hot编码) 2:TF-I