【开源之夏 2023】欢迎报名 SOFAStack 社区项目!

手写SOFA-JRAFT:分析节点启动过程,初步实现 NodeImpl(一) 大家好,从这一章开始,就正式进入到 sofajraft 框架的手写实现领域了。在开始正式实现之前,我想先介绍一下接下来要带领大家实现的这个框架,这个框架是一个 Raft 共识算法框架,一般来说,这种框架只会作为其他框架的一个核心依赖使用,并不会和我们的业务层耦合在一起。就像 Netty 一样,可能在很多框架中都能见到 Netty,但是在真正的工作中,你很少有机会直接使用 Netty 对你的业务做一些操作。而且我还可以很负责任地和大家说一句,Sofa-Jraft框架内部虽然有很多细节,并且对 Raft 算法本 阅读详情

图片

开源之夏是由“开源软件供应链点亮计划”发起并长期支持的一项暑期开源活动,旨在鼓励在校学生积极参与开源软件的开发维护,促进优秀开源软件社区的蓬勃发展,培养和发掘更多优秀的开发者。

活动联合国内外各大开源社区,针对重要开源软件的开发与维护提供项目任务,并面向全球高校学生开放报名。

2023 年,SOFAStack 社区再次加入中国科学院软件研究所的高校开源活动——“开源之夏 2023”,一共为大家准备了五个任务,涵盖 SOFARPC、SOFAArk、SOFAJRaft 和 Layotto 等核心项目,涉及 Golang、Java、Kubernetes、Cloud Native、Distributed System 等多个领域。

SOFARPC 项目介绍

SOFARPC 是由蚂蚁集团开源的一款 Java RPC 框架,具有高可扩展性、高性能和生产级特性。该框架旨在简化应用之间的 RPC 调用,并为应用提供便捷透明、稳定高效的点对点远程服务调用方案。为方便用户和开发者进行功能扩展,SOFARPC 提供了丰富的模型抽象和可扩展接口,包括过滤器、路由、负载均衡等。

SOFAArk 项目介绍

SOFAArk 是一款基于 Java 实现的轻量级类隔离容器,由蚂蚁集团开源贡献。该容器主要提供类隔离和应用(模块)合并部署能力。SOFAArk 提供多种方式来支持多应用(模块)合并部署,包括基于命令行的管控、基于 API 的管控等。

SOFAJRaft 项目介绍

SOFAJRaft 是一个基于 RAFT 一致性算法的生产级高性能 Java 实现,适用于高负载低延迟的场景,支持 MULTI-RAFT-GROUP。使用 SOFAJRaft 可专注于业务领域,由 SOFAJRaft 解决与 RAFT 相关的技术难题。并且 SOFAJRaft 易于使用,可以通过几个示例快速掌握它。

Layotto 项目介绍

Layotto(/leɪˈɒtəʊ/) 是一款使用 Golang 开发的应用运行时, 旨在帮助开发人员快速构建云原生应用,帮助应用和基础设施解耦。它为应用提供了各种分布式能力,例如状态管理、配置管理、事件发布订阅等,以简化应用的开发。

活动规则

开源之夏官网:

https://summer-ospp.ac.cn/

各位同学可以自由选择项目,与社区导师沟通实现方案并撰写项目计划书。被选中的学生将在社区导师指导下,按计划完成开发工作,并将成果贡献给社区。社区评估学生的完成度,主办方根据评估结果发放资助金额给学生。

SOFAStack 社区项目

项目链接:https://summer-ospp.ac.cn/org/orgdetail/95a9e459-a200-4a26-bc0a-81074c2d89be?lang=zh

SOFARPC Java、网络通信、RPC

项目社区导师:EvenLiu

evenljj@163.com

SOFARPC 支持 Stream 流式处理方式

项目编号:2395a0260

项目难度:进阶/Advanced

Stream 方式是一种异步的流式处理方式,可以在数据传输过程中逐个处理数据,避免一次性传输大量数据造成的性能问题。服务端 Stream 是指服务端在处理请求时,将数据分成多个部分逐个返回给客户端的过程;客户端 Stream 是指客户端在请求服务器时,将请求参数分成多个部分逐个发送给服务器的过程。Stream 方式可以让我们在处理大量数据时更高效地使用资源,提高系统的性能和响应速度。SOFARPC 中需要 Triple、Bolt 协议支持 Stream 方式流式处理。

  • SOFARPC 中 Triple 协议支持 Stream 流式处理。
  • SOFARPC 中 Bolt 协议支持 Stream 流式处理。

SOFAArk Java、SOFAArk 源代码

项目社区导师:卫恒

glmapper_2018@163.com

开发一个客户端,支持 Biz 模块的热部署和热卸载,初步实现 Serverless 体验

项目编号:2395a0267

项目难度:基础/Basic

SOFAArk 从最初的一个类隔离框架,逐步演进为支持合并部署与热部署的 “Serverless” 运行时框架,尤其在去年我们完成了 SOFAArk1.0 到 2.0 架构的演进。但是为了让开发者真正享受 Serverless 的研发体验,我们还需要建设一个客户端框架,对接 SOFAArk 实现 Biz 模块的热部署和热卸载,并暴露 HTTP API 接口可以让上游系统或者开发者直接使用。

  • 设计并开发一个新的 SDK(SOFALet),新的 SDK 也就是 SOFALet 暴露一组 HTTP 接口,底层调用 SOFAArk 原子能力实现模块的热部署和热卸载。SOFALet 未来还会有 Node.js 版,这一期先支持 Java 版也就是对接 SOFAArk。
  • 理解 SOFAArk 源代码,尤其是关于 telnet 指令安装和卸载模块的部分。

SOFAArk Go、K8s

项目社区导师:流铄

xujinle300@126.com

开发一个 K8s Operator,编排客户端 API 实现 Biz 模块的热部署,初步达成 Serverless 研发体验

项目编号:2395a0392

项目难度:基础/Basic

为了让开发者真正享受 Serverless 的研发体验,我们需要先建设一个简易的 K8s Operator 和 SOFA Module Deployment、SOFA Module ReplicaSet CRD,对接编排模块热装载和热卸载的客户端,实现模块秒级发布的初步能力,让开发者能初步体验到 Serverless 的发布运维能力。

  • 理解 SOFAArk 模块安装和卸载部分的源代码,并且熟悉 K8s CRD 和 Operator 体系的设计与开发。

SOFAJRaft Java、网络通信、RPC

项目社区导师:刘源远

gege87417376@qq.com

结合 NWR 实现 Flexible RAFT,用于自定义 Quorum 的大小

项目编号:2395a0390

项目难度:进阶/Advanced

JRaft 是一个基于 RAFT 一致性算法的生产级高性能 Java 实现,它运行过程分为两个阶段,即 Leader 选举和日志复制。在原始的 RAFT 算法中,Leader 选举和日志复制都需要获得多数派成员的支持。而 NWR 模型则可以在动态调整一致性强度的场景中使用,它需要满足 W+R>N,以保证强一致性。JRaft 将 RAFT 和 NWR 结合起来,使得用户可以根据不同的业务需求来动态调整 Quorum 的数量。例如,在一个写多读少的场景中,用户可以将多数派的数量从 3 调整为 2,以降低达成共识的条件,从而提高写请求的效率。同时,为了保证 RAFT 的正确性,写 Quorum 的调整需要付出代价,即读 Quorum 的数量也需要相应调整。JRaft 支持成员变更,因此用户可以配置 (0,1] 范围内的小数来计算 W 和 R 的具体值。通过使用 JRaft,用户可以根据自己的业务需求来灵活地调整一致性强度,使得分布式系统在不同场景下都可以获得最佳的性能和正确性。

  • 为 JRaft 实现自定义 Quorum,动态调节 Quorum 的参数,为自定义 Quorum 的场景增加 Jepsen Case。
  • 掌握 RAFT 算法协商过程;基于 RAFT 设计 NWR 模型,编写具体设计文档。

Layotto Go、Kubernetes、K8s

项目社区导师:刘训灼

mixdeers@gmail.com

Layotto 支持自动/手动注入 Pod 部署

项目编号:2395a0359

项目难度:进阶/Advanced

Kubernetes 是 CNCF 下容器资源编排的一个实施标准,Layotto 也拥抱 K8s 环境,在 Kubernetes 集群中,常常以 Sidecar 方式运行。社区需提供方式,以便开发者 / 运维在 Kubernetes 环境中快速部署 Layotto。

  • 提供命令行工具,支持手动注入 Layotto 至 Pod 中;提供 Webhook 插件,支持动态注入 Layotto 至 Pod 中;熟悉 Golang、熟悉 Cobra 编写 Golang 命令行工具。
  • 了解 K8s 基本架构与原理,理解 Pod 生命周期;了解 K8s WebHook 机制;了解 Golang 模版化以及动态渲染模版相关知识。

申请资格

  • 本活动面向年满 18 周岁在校学生。
  • 暑期即将毕业的学生,只要在申请时学生证处在有效期内,就可以提交申请。
  • 中国籍学生参与活动需提供身份证、学生证、教育部学籍在线验证报告(学信网)或在读证明。
  • 外籍学生参与活动需提供护照,同时提供录取通知书、学生卡、在读证明等文件用于证明学生身份。

活动流程

图片

手把手教你写raft--sofajraft选举源码分析(4) 相较于原本的raft算法jraft进行了不少的优化,使用preVote机制避免了集群中不必要的投票,同时leader能够修改自己的term以此来应对candidate term大于自身的情况,这也是避免不必要选举的一种手段。此外,jraft还实现了leader租约的机制,在租约期间内peer无条件认为leader正常,以此来fail fast选举流程。 阅读详情

相关推荐

Sofa-jraft:RAFT共识算法的生产级Java实现

SOFAJ筏 总览 SOFAJRaft是基于一致性算法的生产级高性能Java实现,该算法支持MULTI-RAFT-GROUP用于高负载,低延迟的情况。 使用SOFAJRaft,您可以专注于您的业务领域。 SOFAJRaft应对所有与RAFT相关的技术挑战。 SOFAJRaft非常用户友好,它提供了几个示例,使其易于理解和使用。 产品特点 领导人选举和基于优先级的半确定性领导人选举 日志复制和恢复 只读成员(学习者) 快照和日志压缩 集群成员资格管理,添加节点,删除节点,替换节点等。 用于重新引导,负载平衡场景等的传输领导者的机制 对称的网络分区容限 不对称的网络分区容限 容错,少数故障不会

大话Raft及JRaft、Sofa-JRaft、KRaft

Raft剖析研究

gaozhenzhai的博客 1064

新手DIY无人机,从电机到飞控,这份配件清单和避坑指南请收好

本文为无人机DIY新手提供从电机到飞控的完整配件清单和避坑指南。详细解析电机KV值选择、电调匹配、飞控系统调试等核心问题,帮助初学者避开常见雷区,顺利完成首飞。特别推荐FPV竞速机和航拍机的配件组合方案,并附赠实用调试命令和故障排查表。

weixin_27032989的博客 237

开源之夏 2023 | 欢迎参加openEuler A-Tune SIG和Base-service SIG开发任务

开源之夏是中国科学院软件研究所联合openEuler发起的开源软件供应链点亮计划系列暑期活动,旨在鼓励在校学生积极参与开源软件的开发维护,促进优秀开源软件社区的蓬勃发展。活动联合各大开源社区,针对重要开源软件的开发与维护提供项目,并向全球高校学生开放报名。openEuler社区目前已上线94个项目!欢迎各大学子按照自己感兴...

openEuler_的博客 867

UCIe相关开源项目记录

目前找到的和UCIe协议有关的5个开源项目,如果也有正在做的朋友,欢迎私信交流

m0_64102565的博客 823

手把手教你用STM32标准库写一个能OTA升级的Bootloader(附完整代码)

本文详细介绍了如何使用STM32标准库开发支持OTA无线升级的Bootloader系统,包括Flash分区规划、Bootloader核心实现、无线升级流程及安全校验机制。通过实战代码示例,帮助开发者快速掌握STM32固件升级技术,提升物联网设备的远程维护能力。

weixin_30181209的博客 263

开源之夏2023中选结果公示,504名高校生将投入开源项目贡献

中国科学院软件研究所与openEuler社区联合主办的开源之夏活动项目申请阶段告一段落,中选学生名单已公布。

openEuler_的博客 403

ADS与Cadence中Verilog-A文件的编译与调用实战指南

本文详细介绍了在ADS与Cadence平台中Verilog-A文件的编译与调用实战指南,涵盖开发环境配置、模型创建与编译、仿真设置技巧以及跨平台协作与调试等内容。通过具体案例和优化策略,帮助工程师高效完成混合信号仿真设计,提升电路建模与验证效率。

weixin_29196315的博客 497

基于 SOFAJRaft 实现注册中心

通过本文的学习可以帮助大家了解 SOFAJRaft 的使用方式和集成步骤;参考本文的实现步骤,可以来完成自己工作中相关产品的一致性协议 raft 集成,从而实现应用的高可用。学习本文的前提需要了解 Raft 一致性协议对 SOFAJRaft 框架有一定的了解可以参考:SOFAJRaft 日志复制共识算法本文主要讨论的内容如下注册中心的实现如何集成 Raft 协议来实现注册中心高可用。

谢文峰的博客 1259

YOLOv11 改进 - C2PSA | C2PSA融合TSSA(Token Statistics Self-Attention)令牌统计自注意力,优化遮挡目标感知

本文介绍了Token Statistics Self-Attention(TSSA)机制,并将其集成到YOLOv11中。传统自注意力计算复杂度高,TSSA进行了范式转变,基于token统计特征实现高效注意力交互。它通过“算法展开”推导得出,以“最大编码率降低”为目标,实现特征学习。TSSA包含动态分组和低秩投影优化两步创新,具备线性复杂度。我们将TSSA代码集成到YOLOv11的C2PSA模块中。实验表明,改进后的YOLOv11在目标检测任务中表现良好,验证了TSSA机制的有效性。

魔改工程师的博客 669

Android Shadow插件化框架分析与集成(一)

到此为止,本篇文章先介绍到这里,本篇文章主要介绍了:从源码的角度去集成shadow框架,从下载源码开始,到集成到自己的项目中,其中插件项目我是新建的demo应用,宿主应用是之前搭的一个MVP框架。文章中一步一步详细的介绍了宿主该如何集成,并提供了源码;介绍了插件该如何集成,同时也提供了源码。文章中还介绍了gradle的版本与AGP版本使用不当造成的问题,以及shadow源码的gradle版本与APG版本的配置,及和宿主插件应用gradle版本与AGP版本的关系。

superzhang6666的博客 1235

SOFA Weekly|SOFAArk 社区会议回顾、Layotto 社区会议预告、社区本周贡献

SOFA WEEKLY | 每周精选筛选每周精华问答,同步开源进展欢迎留言互动~SOFAStack(ScalableOpenFinancialArchitecture Stack)是蚂蚁集团自主研发的金融级云原生架构,包含了构建金融级云原生架构所需的各个组件,包括微服务研发框架,RPC 框架,服务注册中心,分布式定时任务,限流/熔断框架,动态配置推送,分布式链路追踪,Metrics 监控...

金融级分布式架构 674

功能安全Safety Case构建方法论

本文系统阐述了功能安全认证中SafetyCase的构建方法。SafetyCase是一套结构化论证体系,通过Claim-Argument-Evidence(CAE)逻辑链证明系统安全性,包含系统级、技术安全级和实现级三层论证。文章详细介绍了SafetyCase的核心框架、与FMEDA等验证方法的关系、工程化实施步骤,以及常见失效模式。特别强调SafetyCase连接理论、实现与证据的桥梁作用,是功能安全认证的灵魂文件,要求将分散的安全活动组织成完整的逻辑论证。

VehSwHwDeveloper的博客 578

SOFA Weekly|SOFA 大事记、Layotto 社区会议回顾与预告、社区本周贡献

SOFA WEEKLY | 每周精选筛选每周精华问答,同步开源进展欢迎留言互动~SOFAStack(ScalableOpenFinancialArchitecture Stack)是蚂蚁集团自主研发的金融级云原生架构,包含了构建金融级云原生架构所需的各个组件,包括微服务研发框架,RPC 框架,服务注册中心,分布式定时任务,限流/熔断框架,动态配置推送,分布式链路追踪,Metrics 监控...

金融级分布式架构 616

私家侦探如何追踪难以找到的人,掌握几个很少人知道的在线免费查询网站,搜索人名、电话号码以及地址的开源网站

私家侦探如何追踪难以找到的人,掌握几个很少人知道的在线免费查询网站,搜索人名、电话号码以及地址的开源网站。

代码讲故事 6487

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

活动报名|SOFA 五周年,Live Long and Prosper!

2018 年 4 月 19 日,我们在北京启程,伴随种下希望的种子,举办了 SOFAStack 社区的第一个开放日。转眼来到 2023 年,瑞兔送福又逢春暖花开,怀揣着新的愿景,我们将于 4 月 15 日回到北京庆祝 SOFA 的五岁生日。????今年的主题「Live Long and Prosper」相信对于不少“星际迷航”粉丝来说都已经耳熟能详了。这是瓦肯人在举瓦肯手礼的时候会说的祝词,却也非常符合...

金融级分布式架构 362

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

展台招募|“SOFA 五周年”开源集市等你来!

2018 年 4 月 19 日,我们在北京启程,伴随种下希望的种子,举办了 SOFAStack 社区的第一个开放日。转眼来到 2023 年,瑞兔送福又逢春暖花开,怀揣着新的愿景,我们将于 4 月 15 日回到北京庆祝 SOFA 的五岁生日。????今年的主题「Live Long and Prosper」相信对于不少“星际迷航”粉丝来说都已经耳熟能详了。这是瓦肯人在举瓦肯手礼的时候会说的祝词,却也非常符合...

金融级分布式架构 316

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

SOFA Weekly|SOFA 开源五周年活动报名、Layotto 会议预告、社区本周贡献 & issue 精选...

SOFA WEEKLY | 每周精选筛选每周精华问答,同步开源进展欢迎留言互动~SOFAStack(ScalableOpenFinancialArchitecture Stack)是蚂蚁集团自主研发的金融级云原生架构,包含了构建金融级云原生架构所需的各个组件,包括微服务研发框架,RPC 框架,服务注册中心,分布式定时任务,限流/熔断框架,动态配置推送,分布式链路追踪,Metrics 监控...

金融级分布式架构 543

SOFA Weekly|SOFARPC 5.10.0 版本发布、SOFA 五周年回顾、Layotto 社区会议回顾与预告...

SOFA WEEKLY | 每周精选筛选每周精华问答,同步开源进展欢迎留言互动~SOFAStack(ScalableOpenFinancialArchitecture Stack)是蚂蚁集团自主研发的金融级云原生架构,包含了构建金融级云原生架构所需的各个组件,包括微服务研发框架,RPC 框架,服务注册中心,分布式定时任务,限流/熔断框架,动态配置推送,分布式链路追踪,Metrics 监控...

金融级分布式架构 590

开源之夏2023 | 欢迎申请openEuler Embedded SIG开发任务

开源之夏是开源软件供应链点亮计划下的暑期活动,由中科院软件研究所与openEuler社区联合主办,旨在鼓励在校学生积极参与开源软件的开发维护,促进优秀开源软件社区的蓬勃发展。活动联合各大开源社区,针对重要开源软件的开发与维护提供项目,并向全球高校学生开放报名。学生可自主选择感兴趣的项目进行申请,中选后在项目开发...

openEuler_的博客 1306

SOFAJRaft 简介

SOFAJRaft是一个基于Raft一致性算法的生产级高性能Java实现,由蚂蚁金服自主研发。来源与背景SOFAJRaft是从百度的braft移植而来,并在其基础上进行了一系列的优化和改进。它作为蚂蚁金服SOFAStack分布式架构中的一个组件,旨在提供金融级的高性能分布式一致性解决方案。特性与优势支持MULTI-RAFT-GROUP:这使得SOFAJRaft能够适用于高负载低延迟的场景。生产级高性能:通过优化和改进,SOFAJRaft在性能和稳定性上都得到了显著的提升。功能组成Log存储。

xu990128638的专栏 571

正式公示|祝贺开源之夏 2023 ShardingSphere 社区项目中选学生!

开源之夏活动迄今为止已进行至第四届,成为每年暑期前最受高校开发者关注及规模最大的开源活动,本届活动有来自 592 所海内外高校的 3475 名学生报名、共有 133 家开源社区参与、593 个项目任务被成功发布。经社区导师及组委会的详细审核后,最终有 504 名学生成功中选。???? ShardingSphere 社区中选名单公布我们很高兴在这里宣布:在本届开源之夏活动中,ShardingSphere ...

ShardingSphere官微 895

发布|133 家开源社区携手亮相开源之夏 2023,开源之旅即将启程!

不知不觉,开源之夏已陪伴大家走过了三个春秋。作为促进开源技术与生态发展的年度盛会,开源之夏已成为全球开源社区和技术爱好者的聚集地。今年,开源之夏 2023 活动吸引了海内外众多优秀开源社区的积极参与,最终共有 133 家开源社区成功上线。它们来自操作系统、编译器、人工智能、大数据、数据库、云原生、RISC-V 等多个热门领域。今夏,他们将与开源之夏一道,携手点亮开源之旅,共同发掘培养优秀开发者,助...

开源社KAIYUANSHE的博客 712

sofa-jraft源码学习

选举 流程按照官方样例梳理,example中的election模块 初始化 创建节点配置信息NodeOptions 创建状态机ElectionOnlyStateMachine,绑定至NodeOptions 创建配置文件Configuration,解析配置的服务列表initialServerAddressList,绑定至NodeOptions 根据dataPath设置日志存储路径 根据data...

阿呆的专栏 2761

SOFAJRaft终极指南:快速掌握分布式一致性核心技术

SOFAJRaft是一个基于Raft一致性算法的高性能Java实现,专为构建高可用、强一致的分布式系统而设计。作为生产级的分布式一致性解决方案,它帮助开发者轻松应对分布式环境中的数据一致性问题。 ## 🚀 项目快速入门 ### 环境准备与项目构建 开始使用SOFAJRaft前,确保您的开发环境满足以下要求: - **JDK版本**:1.8或更高 - **Maven版本**:3.2.5或更

gitblog_00614的博客 1109
上一篇: KCL v0.4.6 重磅发布!全新的 IDE 插件,Helm/Kustomize/KPT 工具集成
下一篇: 【开源之夏 2023】欢迎报名 MOSN 社区项目!
SOFAStack
博客等级 码龄7年 747粉丝 389原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值