探索 SOFARegistry(一)|基础架构篇

SOFARegistry注册中心的搭建(蚂蚁金服) 之前的文章中,详细的介绍了如何去搭建一个基于SOFABoot框架的项目,我们都知道,在用SpringBoot框架去开发一款分布式项目时,Spring Cloud为我们提供了一整套的针对多个服务之间的相互调用的问题,包括Eureka、Hystrix、Feign、Config等。在之前的文章中也介绍了,SOFABoot的主要功能中,除了介绍过的健康检查能力,类隔离和日志隔离之外,还有一个重要的,就是SOFAStack中一些SOFA中间件的集成管理。其实,SOFAStack同Spring Cloud一样,就... 阅读详情

94ac19827ed4db9e3d9670b6677e8b5e.gif

 简 介 

SOFARegistry

SOFARegistry 是蚂蚁集团在生产大规模使用的服务注册中心,经历了多年大促的考验,支撑蚂蚁庞大的服务集群,具有分布式可水平扩容、容量大、推送延迟低、高可用等特点。

蚂蚁生产集群 — SOFARegistry 支撑 1000 万服务发布者、4000 万服务订阅者,在业务应用大规模变更触发千万级别推送量的场景下,推送延迟的 p99 依然能够保持在 7s 以下。

1ea06152b341053ec7b7a28d32204804.png

《认识 SOFARegistry》 这一系列文章将会基于 SOFARegistry 新版本 (v6) 的代码,讲解注册中心在超大规模集群场景下落地的解析与实践,同时介绍 SOFARegistry 的各项功能,方便业务落地。

 #01  部署架构 

SOFARegistry

852bb049997123ed5e3701bb8a3876f6.png

SOFARegistry 现有的架构设计:采用双层存储架构,外加一个负责内部元数据管理的 meta 组件。

SOFARegistry 的角色分为 4 个: client、session、data、meta。角色分工如下:

Client

提供应用接入服务注册中心的基本 API 能力,通过编程方式调用服务注册中心的服务订阅和服务发布能力。

SessionServer|会话服务器

负责接受 Client 的服务发布和服务订阅请求,并作为一个中间层将操作转发 DataServer 层。SessionServer 这一层可随业务机器数的规模增长而扩容。

DataServer|数据服务器

负责存储具体的服务数据,数据按 dataInfoId 进行分片存储,支持多副本备份,保证数据高可用。可随服务数据量的规模增长而扩容。

MetaServer|元数据服务器

负责维护集群 SessionServer 和 DataServer 的一致列表,作为 SOFARegistry 集群内部的地址发现服务,在 SessionServer 或 DataServer 节点变更时可以通知到整个集群。

借助双层数据分片的架构,SOFARegistry 具有了支撑海量数据的基石。

- 支持海量数据:每台 DataServer 只存储一部分的分片数据,随数据规模的增长,只要扩容 DataServer 服务器即可。

- 支持海量客户端:连接层的 SessionServer 只负责跟 Client 打交道,SessionServer 之间没有任何通信或数据复制,所以随着业务规模的增长,SessionServer 可以较轻量地扩容,不会对集群造成额外负担。

#02  数据结构 

SOFARegistry

作为注册中心的基础功能,SOFARegistry 提供发布订阅的接口:Subscriber、Publisher。

在服务发现场景下,Subscriber 需要通过服务名称从注册中心订阅到多个服务方的地址,进行负载均衡的访问。

139c2d5bfcdfe4608164aec222f7b12a.png

当存在服务方机器宕机时,注册中心通知所有的订阅方从服务列表中摘除这个 IP 地址,这样就不会再访问宕机的机器。

962ef776a962bc4216b654e44d3e2695.png

下面给出简化后的发布者和订阅者的字段,贴合上述服务发现的需求。

class Subscriber{
  String dataId;     // 服务名称
  String group;      // 业务类型,比如RPC、MSG等等
  String instanceId; // 租户名称
  String zone;       // 所在分区,结合scope实现逻辑隔离
  ScopeEnum scope;   // 订阅范围: zone、dataCenter、global
}


class Publisher{
  String dataId;
  String group;
  String instanceId;
  String zone;
  List<String> dataList; // 发布的数据, sofarpc 用法中常见url
}

d804088f5972defd0590fbedf0f6237b.png

常见用法(JAVA SDK) 

发布者

// 构造发布者注册表 
PublisherRegistration registration = new PublisherRegistration("com.alipay.test.demo.service:1.0@DEFAULT");
registration.setGroup("TEST_GROUP");
registration.setAppName("TEST_APP");
 // 将注册表注册进客户端并发布数据 
Publisher publisher = registryClient.register(registration, "10.10.1.1:12200?xx=yy");
 // 如需覆盖上次发布的数据可以使用发布者模型重新发布数据 
publisher.republish("10.10.1.1:12200?xx=zz");

订阅者

// 创建 SubscriberDataObserver 
SubscriberDataObserver subscriberDataObserver = new SubscriberDataObserver() {
    @Override
    public void handleData(String dataId, UserData userData) {
        System.out.println("receive data success, dataId: " + dataId + ", data: " + userData);
    }
};


// 构造订阅者注册表,设置订阅维度,ScopeEnum 共有三种级别 zone, dataCenter, global
String dataId = "com.alipay.test.demo.service:1.0@DEFAULT";
SubscriberRegistration registration = new SubscriberRegistration(dataId, subscriberDataObserver);
registration.setGroup("TEST_GROUP");
registration.setAppName("TEST_APP");
registration.setScopeEnum(ScopeEnum.global);


// 将注册表注册进客户端并订阅数据,订阅到的数据会以回调的方式通知 SubscriberDataObserver
Subscriber subscriber = registryClient.register(registration);

更详细的用法文档参考官方文档:  

https://www.sofastack.tech/projects/sofa-registry/java-sdk/

#03  特点与优势

SOFARegistry

从 SOFARegistry 和其他注册中心产品的特性对比,可以看出相比其他产品,SOFARegistry 的主要优势还是在于支撑超大规模集群,目前比较贴合蚂蚁对服务注册中心容量与性能的要求。

c18ed3f6296013f277f75d70bb40b0e4.png

SOFARegistry 在功能特性方面还是不足(未来 SOFARegistry 在特性方面会进行完善)。

最终一致性 

在服务发现场景下,强一致性并不一定是最合适的。服务发现的要求是发布方的变更能够在最快速的广播到整个集群,收敛时长确定的最终一致性同样能满足此要求。

基于 CAP 原理,在满足一致性 C 的场景下,AP 只能选择一个,但作为一个分布式高可用要求的系统,注册中心是不能舍弃 AP 的。

SOFARegistry 选择了 AP 模型,采用内存对数据进行存储,增量搭配全量的数据同步方式,使得能够满足超大规模集群服务发现的需求。

支持海量数据

部分的服务注册中心系统,每台服务器都是存储着全量的服务注册数据,服务器之间依靠一致性协议(paxos/raft)实现数据的复制,或者只保证最终一致性的异步数据复制。

“每台服务器都存储着全量的服务注册数据”,在一般规模下是没问题的。但是在蚂蚁集团庞大的业务规模下,服务注册的数据总量早就超过了单台服务器的容量瓶颈。

SOFARegistry 对数据进行了分片,每台 DataServer 只存储一部分的分片数据。随数据规模的增长,只要扩容 DataServer 服务器即可应对,这是相对其他服务发现领域的竞品来说最大的特点。

我们在线上验证了横向扩展能力,集群尝试最大扩容到 session*370、data*60、meta*3。按照一个 data 节点的安全水位支撑 200w pub,一个 pub 大概 1.5K 开销,考虑容忍 data 节点宕机 1/3 仍然有服务能力(需要保留 pub 上涨的 buffer),该集群可支撑 1.2 亿的 pub,如果配置双副本则可支撑 6kw 的 pub。

支持海量客户端 

SOFARegistry 集群内部使用分层的架构,分别为连接会话层(SessionServer)和数据存储层(DataServer)。

SessionServer 功能很纯粹,只负责跟 Client 打交道,SessionServer 之间没有任何通信或数据复制,所以随着业务规模(即 Client 数量)的增长,SessionServer 可以很轻量地扩容,不会对集群造成额外负担。

高可用 

各个角色都有 FailOver 机制:

- MetaServer 集群部署

内部基于数据库选举,只能存在任意运行中机器,就可以对外服务。

- DataServer 集群部署

基于自研的 Slot 分片算法进行数据分片,数据分片拥有多个副本,一个主副本和多个备副本。如果 DataServer 宕机,MetaServer 能感知,并通知所有 DataServer 和 SessionServer,MetaServer 会快速提升备副本的 DataServer 成为主副本,减少宕机影响时长。

- SessionServer 集群部署

任何一台 SessionServer 宕机时,Client 会自动 FailOver 到其他 SessionServer,并且 Client 会拿到最新的 SessionServer 列表,后续不会再连接这台宕机的 SessionServer。

秒级的服务上下线通知 

对于服务的上下线变化,SOFARegistry 使用推送机制,快速地实现端到端的传达。SOFARegistry 能通过断链事件和心跳快速检测出来服务宕机的状况。

无损运维

SOFARegistry 基于内存存储和分布式的特点,自身在运维的时候势必带来数据迁移。

通过自研的 Slot 分片迁移算法和数据回放功能,使得 SOFARegistry 实现了自身运维期间依然能够对外提供服务,服务零损失。

#04  业务能力

SOFARegistry

发布订阅 

发布订阅是 SOFARegistry 最基础的功能。

按 IP 下线 

对于没有服务流量 goaway 和重试功能的场景下,借助注册中心实现服务流量的 zero down 运维是一个比较重要的需求。

SOFARegistry 提供 HTTP 接口进行指定 IP 的 Publisher 下线,可以在业务代码无侵入的场景下实现在一个机器下线,管控端先从注册中心下线这个 IP 对应的所有 Publisher。

应用级服务发现

SOFARegistry 内部集成了一个基于数据库的元数据中心,参考 Dubbo3 的应用级服务发现方案,实现了和 MOSN 配合的应用级服务发现方案,大幅度减少注册中心的数据量与对客户端的推送量,该特性已经在蚂蚁大规模上线,能够降低注册中心数据量一个数量级以上。

#05  数据架构

SOFARegistry

SOFARegistry 分为多个角色,多个角色之间进行数据同步实现了高可用。

Slot 分片

c70803bd9094b1149a84c5293f17a615.png

我们从逻辑上将数据范围划分成 N 个大小相等的 Slot,并且 Slot 数量后续不可再修改。然后,还需要引进“路由表”SlotTable 的概念,SlotTable 负责存放这每个节点和 N 个 Slot 的映射关系,并保证尽量把所有 Slot 均匀地分配给每个节点。

Session 在进行路由的时候,根据 DataInfoId 的 Hash 值确定数据所在 Slot,再从路由表中拿到数据对应的 Data 节点进行数据拉取,每个 Slot 都会有一个主节点和多个副本节点,从而实现主节点宕机的时候,副本节点能快速提升为主节点。

分配算法的主要逻辑是:

- 主节点和副本节点不能分配在同一个 Data 上;

- Slot 对应主节点 Data 宕机时,优先提升副本节点为主节点,减少不可服务时间;

- 新节点先作为副本节点进行数据同步;

- 主要目标在于减少节点变更时,尽可能缩短注册中心数据的不可用时长。

流程 

e34c5aec498986211eb3d89b80ec9409.png

41fe992477446fd665940e7afcfd0cc5.png

 源码导航


1

接收 Subscriber

https://github.com/sofastack/sofa-registry/blob/723ddd9a8f43438793427f87814016d13b243a58/server/server/session/src/main/java/com/alipay/sofa/registry/server/session/remoting/handler/SubscriberHandler.java#L35
2

接收 Publisher

https://github.com/sofastack/sofa-registry/blob/723ddd9a8f43438793427f87814016d13b243a58/server/server/session/src/main/java/com/alipay/sofa/registry/server/session/remoting/handler/PublisherHandler.java#L36
3

Data 接收 Session 的数据写入

https://github.com/sofastack/sofa-registry/blob/723ddd9a8f43438793427f87814016d13b243a58/server/server/data/src/main/java/com/alipay/sofa/registry/server/data/remoting/sessionserver/handler/BatchPutDataHandler.java#L137
4

Session 接收 Data 的数据变更通知

https://github.com/sofastack/sofa-registry/blob/723ddd9a8f43438793427f87814016d13b243a58/server/server/session/src/main/java/com/alipay/sofa/registry/server/session/remoting/handler/DataChangeRequestHandler.java#L77
5

Session 从 Data 拉取数据

https://github.com/sofastack/sofa-registry/blob/723ddd9a8f43438793427f87814016d13b243a58/server/server/session/src/main/java/com/alipay/sofa/registry/server/session/cache/SessionCacheService.java#L87
6

Session 推送给 Client

https://github.com/sofastack/sofa-registry/blob/723ddd9a8f43438793427f87814016d13b243a58/server/server/session/src/main/java/com/alipay/sofa/registry/server/session/push/PushProcessor.java#L337
7

对比 Session 推送版本和 Data 的数据版本,触发兜底推送

https://github.com/sofastack/sofa-registry/blob/723ddd9a8f43438793427f87814016d13b243a58/server/server/session/src/main/java/com/alipay/sofa/registry/server/session/registry/SessionRegistry.java#L412
8

Data 定时从 Session 批量拉取数据

https://github.com/sofastack/sofa-registry/blob/723ddd9a8f43438793427f87814016d13b243a58/server/server/data/src/main/java/com/alipay/sofa/registry/server/data/slot/SlotDiffSyncer.java#L310
9

Data Follower 定期从 Leader 批量拉取数据

https://github.com/sofastack/sofa-registry/blob/723ddd9a8f43438793427f87814016d13b243a58/server/server/data/src/main/java/com/alipay/sofa/registry/server/data/slot/SlotDiffSyncer.java#L339

数据一致性

- client 对于每个 publisher 都会维护一个 version,每次 pub/unpub 都会自增,会带着 version 一起发送到 session

- session 通过 version 的判断来避免并发场景下高低版本的覆盖问题

- data 通过 version 的判断来避免并发场景下高低版本的覆盖问题

数据推送

- session 接收到 client 的数据写入时,会发送到指定的 data 上

- session 通过断链事件和心跳来检测 client 的宕机

- 当 data 内发生服务变更(比如接受到了新的 pub),data 会通知所有的 session 触发对应 dataId 推送

数据同步兜底 

- session 会把 client 注册的 pub 和 sub 都存储在内存中,data 会定时和所有的 session 同步对比数据,确保数据能在短时间内达到最终一致

- session 定时对比内存中 sub 的推送完成的版本和 data 上数据的最新判断,判断是否需要触发推送

- data 包含多个 Slot,拥有 follower Slot 的 data 会定时和对应的 Slot leader 对比同步数据

本文主要介绍 SOFARegistry 自身的基础功能与优势,以及数据架构的大致介绍。

下一篇将会开始介绍如何开发 SOFARegistry 以及各个代码模块的介绍,欢迎大家继续关注 SOFARegistry ~

对中间件感兴趣的话 

👏 等你加入我们!

e4cfcbdf194b7fa2266e565e28675f75.png

   本周推荐阅读  

43a2469a5fddd43249181cb87eba990c.png

下一个 Kubernetes 前沿:多集群管理

94a89e59c831610f358de0dd6f785df1.png

降本提效!注册中心在蚂蚁集团的蜕变之路


90f0cca79f8bec93b1cb239a12dab3ef.png

我们做出了一个分布式注册中心


63e81e9e2ae63fd600d29d0fa7d17488.png

稳定性大幅度提升:SOFARegistry v6 新特性介绍

9d16aabb94aeac9b9e9022200259985b.png

Proteus快速入门(最详细教程) Proteus 是一款用于嵌入式单片机仿真的软件,用于在打PCB板之前对软件程序和硬件电路的正确性进行仿真验证。1.所以Proteus一般会和Keil软件进行联合仿真,在Proteus中绘制系统的电路图,在Keil软件中编写对应的程序后生成Hex文件。2.Proteus的仿真结果仅供参考,只能在一定程度上验证系统的可能性。实际实物系统还需要进行进一步的调试。以上即为本次分享的Proteus入门教程的全部内容,希望可以能够帮助到各位道友。 阅读详情

相关推荐

逆向解析抖音核心校验参数:bd-ticket-guard-client-data的Python生成逻辑

本文深入解析了抖音核心校验参数bd-ticket-guard-client-data的生成逻辑,详细介绍了其动态证书生成、非对称加密机制及Python实现方法。通过逆向分析,揭示了抖音安全体系的双层验证机制,包括RSA密钥对生成、证书签名及时间戳校验等关键技术要点,为开发者提供了一套完整的参数生成解决方案。

weixin_26642481的博客 410

微服务之注册中心SOFARegistry

1.SOFARegistry部署链接 https://www.sofastack.tech/projects/sofa-registry/server-quick-start/ 2.

NeverSayNever 2771

CVPR2021 CenterPoint源码解读:从VoxelNet到两阶段优化的完整实现细节

本文深度解析了CVPR 2021 CenterPoint模型的完整实现细节,从VoxelNet体素化、稀疏卷积Backbone,到基于中心点的检测头与两阶段精修机制。文章提供了从环境搭建、数据预处理到核心代码模块(如热力图生成、关键点特征提取与MLP Refiner)的实战指南,并分享了训练策略、多任务损失调优及可视化调试等关键工程实践,助力开发者深入理解并复现这一高效的3D目标检测框架。

linux的博客 470

【亲测免费】 SOFA Registry 开源项目教程

SOFA Registry 是一个基于 Java 实现的高性能、高可用、高扩展性的分布式注册中心,由蚂蚁金服开发并开源。它支持海量数据注册和查询,适用于微服务架构中的服务注册与发现。SOFA Registry 提供了稳定的服务注册和发现机制,确保服务间的可靠通信。 ## 项目快速启动 ### 环境准备 - JDK 1.8 或更高版本 - Maven 3.2.5 或更高版本 - Git ###

gitblog_00447的博客 651

k8s 查看cpu使用率最高的pod

在 Kubernetes 中,可以使用命令查看 Pod 的资源使用情况,从而找到 CPU 使用率最高的 Pod。

u010674101的专栏 3345

RK3588设备树调试实战:解决NPU不加载、USB3.0识别异常与DP显示问题

本文深入探讨了RK3588设备树调试中的三大典型问题:NPU不加载、USB3.0识别异常与DP显示问题。通过详细的问题定位步骤、关键设备树修改和调试技巧,帮助开发者快速解决硬件适配中的挑战,提升RK3588平台的开发效率。

weixin_30576827的博客 477

sofaRegistry 学习篇

文章目录地址个人笔记上图服务发现的推、拉模型服务推送性能优化(可以应用到日常大批量任务处理优化)异常处理 地址 海量数据下的注册中心 - SOFARegistry 架构介绍 个人笔记 dubbo不支持Eureka,Eureka是基于application级别,dubbo是group,version,sofaRegistry以dataInfoId sofaRegistry跟其他注册中心一样,有自己的维护健康的机制。Eureka采用TTL(Time To Live),Zookeeper 采用心跳跟sess

大鸡腿的博客 861

PubMedBERT:生物医学NLP中的垂直领域预训练实践与性能突破

本文深入探讨了PubMedBERT在生物医学NLP领域的应用与性能突破。作为专为生物医学文本设计的预训练模型,PubMedBERT通过全词掩码策略和BLURB基准测试,显著提升了命名实体识别、关系抽取等任务的准确率。文章还提供了PubMedBERT的实战应用案例和代码示例,展示了其在医学文献检索和电子病历结构化中的卓越表现。

kite3的博客 285

windows下搭建本地sofa-registry

SOFARegistry 是蚂蚁金服开源的一个生产级、高时效、高可用的服务注册中心。SOFARegistry 最早源自于淘宝的 ConfigServer,十年来,随着蚂蚁金服的业务发展,注册中心架构已经演进至第五代。目前 SOFARegistry 不仅全面服务于蚂蚁金服的自有业务,还随着蚂蚁金融科技服务众多合作伙伴,同时也兼容开源生态。SOFARegistry 采用 AP 架构,支持秒级时效性推送,同时采用分层架构支持无限水平扩展。

Spirit_NKlaus的专栏 1305

Autosar模式管理入门系列02-EcuM

对EcuM状态机切换过程及模块中重要API进行介绍。

initiallizer的博客 7093

领域知识图谱构建的技术流程

因此概念的属性定义十分重要,通常大部分知识库中的概念属性都是采用人工定义等方式生成的,通用知识图谱则可以从开放数据集中获取概念的属性,然后从在线百科中学习实体的属性,并对实体属性进行往上规约从而生成概念的属性。由于百科的分类体系都是经过了百科管理员或是高级编辑人员的校验,其分类系统中的数据可靠性非常高,因此从百科中抽取概念和实体,通常将标题作为实体的候选,而将百科中的分类系统直接作为概念的候选。为了对知识进行合理的组织,更好地描述知识本身与知识之间的关联,需要对知识图谱的模式进行良好的定义。

weixin_43961909的博客 334

SOFARegistry 项目常见问题解决方案

SOFARegistry 是由蚂蚁金服开源的一个生产级、高时效、高可用的服务注册中心。该项目最早源自于淘宝的 ConfigServer,经过多年的发展和迭代,目前已经成为一个支持海量连接和海量数据的服务注册中心。它采用 AP 架构,支持秒级时效性推送,并采用分层架构支持无限水平扩展。项目主要使用的编程语言是 Java。 ## 二、新手使用时常见问题及解决步骤 ### 问题一:如何快速开始使用

gitblog_00124的博客 573

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

HAVE FUN | SOFARegistry、Layotto 源码解析活动最新进展

源码解析源码解析活动发布已经五周啦,项目由最开始的 SOFARegistry 到 Layotto 。两个项目共计发布了 14 篇源码解析任务,那么活动如今进展到哪个程度了呢?快向下看吧!源码解析活动任务进展有了新变化,有新放出的任务哦,快来看看有没有适合你的任务,赶快认领走吧~活动仍在进行中...源码解析活动进展# 01 #来看看 SOFARegistry 与 Layot...

金融级分布式架构 240

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

[从源码学设计]蚂蚁金服SOFARegistry之配置信息

SOFARegistry 是蚂蚁金服开源的一个生产级、高时效、高可用的服务注册中心。本系列文章重点在于分析设计和架构,即利用多篇文章,从多个角度反推总结 DataServer 或者 SOFARegistry 的实现机制和架构思路,让大家借以学习阿里如何设计。本文为第十六篇,介绍SOFARegistry网络操作之配置信息如何处理。

罗西的思考 910

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

[从源码学设计]蚂蚁金服SOFARegistry网络操作之连接管理

SOFARegistry 是蚂蚁金服开源的一个生产级、高时效、高可用的服务注册中心。本系列文章重点在于分析设计和架构,即利用多篇文章,从多个角度反推总结 DataServer 或者 SOFARegistry 的实现机制和架构思路,让大家借以学习阿里如何设计。本文为第三篇,介绍SOFARegistry网络操作之连接管理。

罗西的思考 699

[从源码学设计]蚂蚁金服SOFARegistry之程序基本架构

之前我们通过三篇文章初步分析了 MetaServer 的基本架构,MetaServer 这三篇文章为我们接下来的工作做了坚实的铺垫。本系列我们接着分析 Data Server,顺带会涉及一些 Session Server。因为 DataServer 和 MetaServer 代码实现和架构的基本套路类似,所以我们主要关心差异点和DataServer的特点。本文会分析DataServer程序的基本架构。

罗西的思考 1003

社区会议|一起来聊聊 SOFARegistry

SOFA 社区大热的项目—— SOFARegistry今晚 9 点将开启社区会议!本次社区会议想邀请大家一起来聊聊 SOFARegistry,大家一起探讨交流,大开脑洞,畅所欲言。无论你有没有参与过 SOFARegistry 项目,只要你有兴趣,就进来聊聊吧!会议主题SOFA 社区会议|一起聊聊 SOFARegistry会议时间2022 年 4 月 12 日(今晚)21:...

金融级分布式架构 222

社区会议回顾|大家一起聊聊 SOFARegistry

SOFA 社区在 2022 年 4 月 12 日组织了本次社区会议,和大家一起聊聊 SOFARegistry。本次社区会议共计 38 人参加,那么大家都聊了些什么呢?看下方回顾吧...SOFARegistry近一年的规划SOFARegistry 在 2022 年预计会发布 6.1 和 6.2 版本。源码解析心得分享- corey 分享《源码解析|延迟推送 trace》的...

金融级分布式架构 268

SOFARegistry 源码|数据同步模块解析

文|宋国磊(GitHub ID:glmapper )SOFAStack Committer华米科技高级研发工程师负责华米账号系统、框架治理方向的开发本文3024字 阅读10分钟|前言|本文主要围绕 SOFARegistry 的数据同步模块进行了源码的解析。其中,对于注册中心的概念以及 SOFARegistry 的基础架构将不再做详细的阐述,有兴趣的小伙伴在《海量数...

金融级分布式架构 329

SOFARegistry集群部署教程:Docker Compose与Kubernetes方案

SOFARegistry作为蚂蚁金服开源的生产级服务注册中心,具备低延迟、高可用特性,本文将详解两种主流集群部署方案,帮助新手快速搭建稳定的服务注册环境。 ## 📦 Docker Compose一键部署方案 ### 环境准备 确保已安装Docker和Docker Compose,克隆项目代码: ```bash git clone https://gitcode.com/gh_mirrors/

gitblog_00031的博客 393

SOFARegistry监控与运维:关键指标与问题排查技巧

SOFARegistry 是由蚂蚁集团开发的生产级、低延迟、高可用服务注册中心,在分布式系统中扮演着关键角色。有效的监控与运维是保障其稳定运行的核心,本文将详细介绍 SOFARegistry 的关键监控指标、实用运维工具及常见问题排查方法,帮助新手用户快速掌握运维技能。 ## 一、核心监控指标解析 📊 SOFARegistry 内置了完善的指标采集机制,通过 JVM 指标、系统负载和业务指标

gitblog_00007的博客 417

SOFARegistry配置最佳实践:自动化推送流控与性能优化

SOFARegistry作为蚂蚁金服开源的生产级服务注册中心,具备低延迟、高可用的核心特性。在大规模微服务架构中,合理配置推送流控策略与性能优化参数,是保障服务注册与发现稳定性的关键。本文将详细介绍SOFARegistry的自动化推送流控机制及性能调优实践,帮助开发者快速掌握配置技巧。 ## 核心配置模块解析 SOFARegistry的推送流控与性能优化主要通过`AutoPushEfficie

gitblog_00055的博客 1028

蚂蚁金服服务注册中心 SOFARegistry 解析

SOFAStack (Scalable Open Financial Architecture Stack)是蚂蚁金服自主研发的金融级分布式架构,包含了构建金融级云原生架构所需的各个组件...

weixin_45727359的博客 1605

[从源码学设计]蚂蚁金服SOFARegistry 之 ChangeNotifier

SOFARegistry 是蚂蚁金服开源的一个生产级、高时效、高可用的服务注册中心。 本系列文章重点在于分析设计和架构,即利用多篇文章,从多个角度反推总结 DataServer 或者 SOFARegistry 的实现机制和架构思路,让大家借以学习阿里如何设计。 本文为第十五篇,分析如何执行ChangeNotifier 来通知相关模块:hi,这里有新数据变化来到了,兄弟们走起来。

罗西的思考 637

SOFARegistry数据同步机制:跨机房服务发现的实现原理

SOFARegistry作为蚂蚁金服开源的生产级服务注册中心,其核心优势之一就是高效的跨机房数据同步能力。在分布式系统中,跨地域多机房部署已成为保障高可用的标配,而服务注册中心作为服务发现的基础设施,必须确保不同机房间的服务元数据能够实时、一致地同步,这正是SOFARegistry数据同步机制要解决的关键问题。 ## 数据同步的核心挑战与设计目标 在跨机房场景下,服务注册中心面临三大核心挑战:

gitblog_01074的博客 531
上一篇: 社区会议|MOSN 社区将会发布 1.0 版本,同时推动下一代架构演进
下一篇: BabaSSL 发布 8.3.0|实现相应隐私计算的需求
SOFAStack
博客等级 码龄7年 747粉丝 389原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值